The kernel is a special case, where the SDK is really designed for developing user applications (which the kernel is not).
I found it pretty easy to create a kernel-module-MYMODULE.bbclass file and build the kernel and module in the OE/Poky build system directly, and then have it included in the image made for the device. See http://www.yoctoproject.org/docs/1.4/kernel-dev/kernel-dev.html#incorporating-out-of-tree-modules for details. Brian On Tue, 2013-01-15 at 16:52 +0000, Patrick Turley wrote: > I used the meta-toolchain-sdk recipe to produce an SDK, and I installed it. > Here's an interesting line from the environment setup script: > > export LDFLAGS="-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed" > > All these linker options are preceded by "-Wl", which indicates the SDK is > *expecting* them to be given to gcc and then passed on to ld. > > If you look at the help for the ld command line, all these options are > available, but with the "-Wl," omitted. In fact, if you use these options > exactly as shown here, ld will complain that they aren't recognized and fail. > > So, the SDK is giving me a value of LDFLAGS that *cannot* be used with ld. Of > course, the C compiler driver can link and produce executables, and that > muddies the issue somewhat. > > Here's an example where this is causing me real problems… > > I'm building an external module against the kernel produced by Yocto. Here's > an extract from my output: > > > make -C > /home/pturley/yocto-mpu-build/tmp/work/dm8148_mpu-poky-linux-gnueabi/linux-ti81xx-psp-2.6.37-r0+spawnlabs+r0/git > M=`pwd` ARCH=arm > CROSS_COMPILE=/opt/poky/1.3/sysroots/x86_64-pokysdk-linux/usr/bin/armv7a-vfp-neon-poky-linux-gnueabi/arm-poky-linux-gnueabi- > \ > EXTRA_CFLAGS="-DUSE_UDEV=1 -DMAX_POOLS=128" modules > . > . > . > LD [M] > /home/pturley/z3-work/z3-centaurus-dm814x_RPS-20120626/ezsdk/component-sources/linuxutils_3_22_00_02/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.ko > /opt/poky/1.3/sysroots/x86_64-pokysdk-linux/usr/bin/armv7a-vfp-neon-poky-linux-gnueabi/arm-poky-linux-gnueabi-ld: > unrecognized option '-Wl,-O1' > > > As you can see here, the kernel Make files are interpreting LDFLAGS as > something that *can* be given directly to ld, so they fail. > > > My questions are: > > 1) Has anyone else run into this before? > > 2) If so, how did you resolve it? > > 3) Since the Yocto kernel build is *not* failing, I infer that it is *not* > using the ld options the SDK gives me. So, the Yocto kernel build has its own > pathway through which it computes its value for LDFLAGS. Why would Yocto use > its own SDK in a way that no user is expected to? > > _______________________________________________ > yocto mailing list > yocto@yoctoproject.org > https://lists.yoctoproject.org/listinfo/yocto >
_______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto