On 6 September 2013 08:32, eles <e...@eles.com> wrote: > On Thursday, 5 September 2013 at 23:49:18 UTC, Ramon wrote: >> >> On D's, and in particular GDC's, way to conquer the world there will >> evidently be many newbies to notice D, look at it, be drawn to it (and be >> happily trapped). >> >> I am such a newbie and the idea behind this thread is to collect all the >> issues, quirks and nuisances a newbie might encounter. > > > That being said, Iain, could you please update this example of yours: > > http://iainbuclaw.wordpress.com/2010/05/22/writing-a-linux-kernel-module-in-d/ > > It is a very interesting concept, if it works... > > Using the git head gdc I have these errors: > > $make VERBOSE=1 > gdc -c dinterface.d -o dinterface.o > make -C /lib/modules/3.11.0-5-generic/build M=/home/user/kernelmodule > CONFIG_HELLO=m MAKE_KBUILD=1 modules > make[1]: Entering directory `/usr/src/linux-headers-3.11.0-5-generic' > LD [M] /home/user/kernelmodule/hello.o > Building modules, stage 2. > MODPOST 1 modules > WARNING: could not find /home/user/kernelmodule/.dinterface.o.cmd for > /home/user/kernelmodule/dinterface.o > WARNING: "_D3std3utf12UTFException7__ClassZ" > [/home/user/kernelmodule/hello.ko] undefined! > WARNING: > "_D3std4conv21ConvOverflowException6__ctorMFAyaAyamZC3std4conv21ConvOverflowException" > [/home/user/kernelmodule/hello.ko] undefined! > WARNING: > "_D6object9Exception6__ctorMFNaNbNfAyaAyamC6object9ThrowableZC9Exception" > [/home/user/kernelmodule/hello.ko] undefined! > WARNING: "_d_assert_msg" [/home/user/kernelmodule/hello.ko] undefined! > WARNING: "_D3std5ascii7isDigitFNaNbNfwZb" [/home/user/kernelmodule/hello.ko] > undefined! > WARNING: "_d_arraycopy" [/home/user/kernelmodule/hello.ko] undefined! > WARNING: "_D9Exception7__ClassZ" [/home/user/kernelmodule/hello.ko] > undefined! > WARNING: > "_D3std3utf12UTFException6__ctorMFAyamAyamC6object9ThrowableZC3std3utf12UTFException" > [/home/user/kernelmodule/hello.ko] undefined! > WARNING: "_d_newclass" [/home/user/kernelmodule/hello.ko] undefined! > WARNING: "_D4core6memory2GC6qallocFNaNbmkZS4core6memory8BlkInfo_" > [/home/user/kernelmodule/hello.ko] undefined! > WARNING: "_D3std4conv21ConvOverflowException7__ClassZ" > [/home/user/kernelmodule/hello.ko] undefined! > WARNING: "_D12TypeInfo_Aya6__initZ" [/home/user/kernelmodule/hello.ko] > undefined! > WARNING: "_D3std9exception7bailOutFNaNfAyamxAaZv" > [/home/user/kernelmodule/hello.ko] undefined! > WARNING: "_D3std4conv13ConvException7__ClassZ" > [/home/user/kernelmodule/hello.ko] undefined! > WARNING: "_Dmodule_ref" [/home/user/kernelmodule/hello.ko] undefined! > WARNING: "_d_newitemT" [/home/user/kernelmodule/hello.ko] undefined! > WARNING: "_D4core6memory2GC6extendFNaNbPvmmZm" > [/home/user/kernelmodule/hello.ko] undefined! > WARNING: "_D14TypeInfo_Array6__vtblZ" [/home/user/kernelmodule/hello.ko] > undefined! > WARNING: "_D3std6format15FormatException7__ClassZ" > [/home/user/kernelmodule/hello.ko] undefined! > WARNING: "_D3std6string9toStringzFNaNbAyaZPya" > [/home/user/kernelmodule/hello.ko] undefined! > WARNING: > "_D3std4conv13ConvException6__ctorMFAyaAyamZC3std4conv13ConvException" > [/home/user/kernelmodule/hello.ko] undefined! > WARNING: "_D15TypeInfo_Struct6__vtblZ" [/home/user/kernelmodule/hello.ko] > undefined! > WARNING: "_d_assert" [/home/user/kernelmodule/hello.ko] undefined! > WARNING: > "_D3std6format15FormatException6__ctorMFAyaAyamC6object9ThrowableZC3std6format15FormatException" > [/home/user/kernelmodule/hello.ko] undefined! > WARNING: "_Unwind_Resume" [/home/user/kernelmodule/hello.ko] undefined! > WARNING: "_d_arrayappendT" [/home/user/kernelmodule/hello.ko] undefined! > WARNING: "_D11TypeInfo_Aa6__initZ" [/home/user/kernelmodule/hello.ko] > undefined! > WARNING: "_D3std4math7signbitFNaNbNeeZi" [/home/user/kernelmodule/hello.ko] > undefined! > WARNING: "_D3std3utf6encodeFNaNfKG4awZm" [/home/user/kernelmodule/hello.ko] > undefined! > WARNING: "_d_arraycatnT" [/home/user/kernelmodule/hello.ko] undefined! > WARNING: "_d_throw" [/home/user/kernelmodule/hello.ko] undefined! > WARNING: "_D3std3utf12isValidDcharFNaNbNfwZb" > [/home/user/kernelmodule/hello.ko] undefined! > WARNING: "_d_array_bounds" [/home/user/kernelmodule/hello.ko] undefined! > WARNING: "_D16TypeInfo_Pointer6__vtblZ" [/home/user/kernelmodule/hello.ko] > undefined! > WARNING: "_D14TypeInfo_Const6__vtblZ" [/home/user/kernelmodule/hello.ko] > undefined! > WARNING: "_D3std6string12__ModuleInfoZ" [/home/user/kernelmodule/hello.ko] > undefined! > WARNING: "_D10TypeInfo_a6__initZ" [/home/user/kernelmodule/hello.ko] > undefined! > WARNING: "_d_arraycatT" [/home/user/kernelmodule/hello.ko] undefined! > WARNING: "_adDupT" [/home/user/kernelmodule/hello.ko] undefined! > WARNING: "_d_arraysetcapacity" [/home/user/kernelmodule/hello.ko] undefined! > CC /home/user/kernelmodule/hello.mod.o > LD [M] /home/user/kernelmodule/hello.ko > make[1]: Leaving directory `/usr/src/linux-headers-3.11.0-5-generic' > > Should the Makefile be updated to not link in libraries?
That's interesting, as gdc is only used to compile dinterface.o (which has no reference to libphobos/druntime and shouldn't be emitting references to it). In today's gdc implementation (back then I believe that was for D1) - you'd have to use -fno-emit-moduleinfo (maybe I should reverse the logic of that switch to make it easier to use). Regards -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';