[yocto] Error building meta-toolchain with SDKMACHINE=x86_64-mingw32 on daisy

Jacob Kroon jacob.kroon at gmail.com
Sun Jun 15 14:05:04 PDT 2014


Hi Richard, Khem,

On Sat, Jun 14, 2014 at 12:30 PM, Jacob Kroon <jacob.kroon at gmail.com> wrote:

> On Tue, Jun 10, 2014 at 11:56 PM, Jacob Kroon <jacob.kroon at gmail.com>
> wrote:
>
>> Hi,
>>
>> I've added meta-mingw layer, and am using daisy branches. When I do:
>>
>> SDKMACHINE=x86_64-mingw32 bitbake meta-toolchain
>>
>> I get the following errors:
>>
>> <...>
>> | # @multilib_dir@ is not really necessary, but sometimes it has
>> | # more uses than just a directory name.
>> | /bin/sh
>> /home/jkroon/Projects/oe-devel/build-daisy-mingw/tmp-eglibc/work-shared/gcc-4.8.2-r0/gcc-4.8.2/libgcc/../mkinstalldirs
>> .
>> | ln -s -f libgcc.map libgcc.map.def && if [ ! -d ./shlib ]; then mkdir
>> ./shlib; else true; fi &&
>> /home/jkroon/Projects/oe-devel/build-daisy-mingw/tmp-eglibc/work/x86_64-oesdk-mingw32/gcc-crosssdk/4.8.2-r0/gcc-4.8.2/build.x86_64-linux.x86_64-oesdk-mingw32/./gcc/xgcc
>> -B/home/jkroon/Projects/oe-devel/build-daisy-mingw/tmp-eglibc/work/x86_64-oesdk-mingw32/gcc-crosssdk/4.8.2-r0/gcc-4.8.2/build.x86_64-linux.x86_64-oesdk-mingw32/./gcc/
>> -isystem/home/jkroon/Projects/oe-devel/build-daisy-mingw/tmp-eglibc/sysroots/x86_64-nativesdk-mingw32-oesdk-mingw32/usr/local/oecore-x86_64/sysroots/x86_64-oesdk-mingw32/usr/include
>> -L/home/jkroon/Projects/oe-devel/build-daisy-mingw/tmp-eglibc/sysroots/x86_64-linux/usr/x86_64-oesdk-mingw32/lib
>> -L/home/jkroon/Projects/oe-devel/build-daisy-mingw/tmp-eglibc/sysroots/x86_64-linux/usr/mingw/lib
>> -isystem
>> /home/jkroon/Projects/oe-devel/build-daisy-mingw/tmp-eglibc/sysroots/x86_64-linux/usr/x86_64-oesdk-mingw32/include
>> -isystem
>> /home/jkroon/Projects/oe-devel/build-daisy-mingw/tmp-eglibc/sysroots/x86_64-linux/usr/mingw/include
>> -B/home/jkroon/Projects/oe-devel/build-daisy-mingw/tmp-eglibc/sysroots/x86_64-linux/usr/x86_64-oesdk-mingw32/bin/
>> -B/home/jkroon/Projects/oe-devel/build-daisy-mingw/tmp-eglibc/sysroots/x86_64-linux/usr/x86_64-oesdk-mingw32/lib/
>> -isystem
>> /home/jkroon/Projects/oe-devel/build-daisy-mingw/tmp-eglibc/sysroots/x86_64-linux/usr/x86_64-oesdk-mingw32/include
>> -isystem
>> /home/jkroon/Projects/oe-devel/build-daisy-mingw/tmp-eglibc/sysroots/x86_64-linux/usr/x86_64-oesdk-mingw32/sys-include
>> --sysroot=/home/jkroon/Projects/oe-devel/build-daisy-mingw/tmp-eglibc/sysroots/x86_64-nativesdk-mingw32-oesdk-mingw32
>> -O2  -g -Os -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE  -W -Wall -Wno-narrowing
>> -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes
>> -Wold-style-definition  -isystem ./include   -g -DIN_LIBGCC2
>> -fbuilding-libgcc -fno-stack-protector   -shared -nodefaultlibs
>> libgcc.map.def -Wl,--out-implib,./shlib/libgcc_s.a.tmp -o
>> ./shlib/libgcc_s_seh-1.dll.tmp -g -Os -B./ _chkstk_s.o _chkstk_ms_s.o
>> _muldi3_s.o _negdi2_s.o _lshrdi3_s.o _ashldi3_s.o _ashrdi3_s.o _cmpdi2_s.o
>> _ucmpdi2_s.o _clear_cache_s.o _trampoline_s.o __main_s.o _absvsi2_s.o
>> _absvdi2_s.o _addvsi3_s.o _addvdi3_s.o _subvsi3_s.o _subvdi3_s.o
>> _mulvsi3_s.o _mulvdi3_s.o _negvsi2_s.o _negvdi2_s.o _ctors_s.o _ffssi2_s.o
>> _ffsdi2_s.o _clz_s.o _clzsi2_s.o _clzdi2_s.o _ctzsi2_s.o _ctzdi2_s.o
>> _popcount_tab_s.o _popcountsi2_s.o _popcountdi2_s.o _paritysi2_s.o
>> _paritydi2_s.o _powisf2_s.o _powidf2_s.o _powixf2_s.o _powitf2_s.o
>> _mulsc3_s.o _muldc3_s.o _mulxc3_s.o _multc3_s.o _divsc3_s.o _divdc3_s.o
>> _divxc3_s.o _divtc3_s.o _bswapsi2_s.o _bswapdi2_s.o _clrsbsi2_s.o
>> _clrsbdi2_s.o _fixunssfsi_s.o _fixunsdfsi_s.o _fixunsxfsi_s.o _fixsfdi_s.o
>> _fixdfdi_s.o _fixxfdi_s.o _fixunssfdi_s.o _fixunsdfdi_s.o _fixunsxfdi_s.o
>> _floatdisf_s.o _floatdidf_s.o _floatdixf_s.o _floatundisf_s.o
>> _floatundidf_s.o _floatundixf_s.o _divdi3_s.o _moddi3_s.o _udivdi3_s.o
>> _umoddi3_s.o _udiv_w_sdiv_s.o _udivmoddi4_s.o gthr-win32_s.o cpuinfo_s.o
>> sfp-exceptions_s.o addtf3_s.o divtf3_s.o eqtf2_s.o getf2_s.o letf2_s.o
>> multf3_s.o negtf2_s.o subtf3_s.o unordtf2_s.o fixtfsi_s.o fixunstfsi_s.o
>> floatsitf_s.o floatunsitf_s.o fixtfdi_s.o fixunstfdi_s.o floatditf_s.o
>> floatunditf_s.o fixtfti_s.o fixunstfti_s.o floattitf_s.o floatuntitf_s.o
>> extendsftf2_s.o extenddftf2_s.o extendxftf2_s.o trunctfsf2_s.o
>> trunctfdf2_s.o trunctfxf2_s.o enable-execute-stack_s.o unwind-seh_s.o
>> unwind-sjlj_s.o unwind-c_s.o emutls_s.o libgcc.a  -lmingwthrd -lmingw32
>> -lmingwex -lmoldname -lmsvcrt -ladvapi32 -lshell32 -luser32 -lkernel32 &&
>> if [ -f ./shlib/libgcc_s_seh-1.dll ]; then mv -f ./shlib/libgcc_s_seh-1.dll
>> ./shlib/libgcc_s_seh-1.dll.backup; else true; fi && mv
>> ./shlib/libgcc_s_seh-1.dll.tmp ./shlib/libgcc_s_seh-1.dll && mv
>> ./shlib/libgcc_s.a.tmp ./shlib/libgcc_s.a
>> |
>> /home/jkroon/Projects/oe-devel/build-daisy-mingw/tmp-eglibc/sysroots/x86_64-linux/usr/bin/x86_64-oesdk-mingw32/x86_64-oesdk-mingw32-ld:
>> cannot find dllcrt2.o: No such file or directory
>> |
>> /home/jkroon/Projects/oe-devel/build-daisy-mingw/tmp-eglibc/sysroots/x86_64-linux/usr/bin/x86_64-oesdk-mingw32/x86_64-oesdk-mingw32-ld:
>> cannot find crtbegin.o: No such file or directory
>> |
>> /home/jkroon/Projects/oe-devel/build-daisy-mingw/tmp-eglibc/sysroots/x86_64-linux/usr/bin/x86_64-oesdk-mingw32/x86_64-oesdk-mingw32-ld:
>> cannot find crtend.o: No such file or directory
>> | collect2: error: ld returned 1 exit status
>> | make[1]: *** [libgcc_s.dll] Error 1
>> | make[1]: Leaving directory
>> `/home/jkroon/Projects/oe-devel/build-daisy-mingw/tmp-eglibc/work/x86_64-oesdk-mingw32/gcc-crosssdk/4.8.2-r0/gcc-4.8.2/build.x86_64-linux.x86_64-oesdk-mingw32/x86_64-oesdk-mingw32/libgcc'
>> | make: *** [all-target-libgcc] Error 2
>> | ERROR: oe_runmake failed
>> | WARNING:
>> /home/jkroon/Projects/oe-devel/build-daisy-mingw/tmp-eglibc/work/x86_64-oesdk-mingw32/gcc-crosssdk/4.8.2-r0/temp/run.do_compile.4758:1
>> exit 1 from
>> |   exit 1
>> | ERROR: Function failed: do_compile (log file is located at
>> /home/jkroon/Projects/oe-devel/build-daisy-mingw/tmp-eglibc/work/x86_64-oesdk-mingw32/gcc-crosssdk/4.8.2-r0/temp/log.do_compile.4758)
>> ERROR: Task 442
>> (/home/jkroon/Projects/oe-devel/build-daisy-mingw/../openembedded-core/meta/recipes-devtools/gcc/
>> gcc-crosssdk_4.8.bb, do_compile) failed with exit code '1'
>> NOTE: Tasks Summary: Attempted 910 tasks of which 909 didn't need to be
>> rerun and 1 failed.
>> NOTE: Writing buildhistory
>> No currently running tasks (516 of 1034)
>>
>> Summary: 1 task failed:
>>
>> /home/jkroon/Projects/oe-devel/build-daisy-mingw/../openembedded-core/meta/recipes-devtools/gcc/
>> gcc-crosssdk_4.8.bb, do_compile
>> Summary: There was 1 ERROR message shown, returning a non-zero exit code.
>>
>> Does anyone know whats going on ?
>>
>> Regards
>> Jacob
>>
>
> The sysroot that is passed to gcc looks incorrect:
>
>
> --sysroot=/home/jkroon/Projects/oe-devel/build-daisy-mingw/tmp-eglibc/sysroots/x86_64-nativesdk-mingw32-oesdk-mingw32
>
> In my build, the actual sysroot looks like its located in a subdirectory
> of the path above:
>
> ./usr/local/oecore-x86_64/sysroots/x86_64-oesdk-mingw32/
>
> In there there is a ./usr/lib/dllcrt2.o which gcc couldn't find.
>
> I'm using plain daisy branches, updated as of today.
>
> Build Configuration:
> BB_VERSION        = "1.22.0"
> BUILD_SYS         = "x86_64-linux"
> NATIVELSBSTRING   = "Fedora-20"
> TARGET_SYS        = "arm-oe-linux-gnueabi"
> MACHINE           = "wandboard-solo"
> DISTRO            = "monkey"
> DISTRO_VERSION    = "0.1"
> TUNE_FEATURES     = "armv7a vfp neon callconvention-hard cortexa9"
> TARGET_FPU        = "vfp-neon"
> meta-mingw        = "daisy:e9208b84d90cc21fa1318af1d87aef1ea04a8cb0"
> meta-qt5          = "daisy:0137274b13a568718e441f8f1c611a653db9f2f7"
> meta              = "daisy:d28b21e01fbc4b780d14495894c4253d422cd9d9"
> meta-fsl-arm      = "daisy:f5bf277a5a5fba2c3b64ed7d2dbec1903d96386b"
> meta-fsl-arm-extra = "daisy:029f535cfbc5746288c6129babb2d7679927a183"
>
>
(I've stripped all paths in the mail from the OE build directory)

Running


sysroots/x86_64-linux/usr/bin/x86_64-oesdk-mingw32.gcc-crosssdk-initial/x86_64-oesdk-mingw32-gcc
-print-search-dirs

I see that it is looking for objects in (amongst other things):


sysroots/x86_64-nativesdk-mingw32-oesdk-mingw32/mingw/lib/x86_64-oesdk-mingw32/4.8.2/
    sysroots/x86_64-nativesdk-mingw32-oesdk-mingw32/mingw/lib/

If I add a symlink in sysroots/x86_64-nativesdk-mingw32-oesdk-mingw32

    ln -s usr/local/oecore-x86_64/sysroots/x86_64-oesdk-mingw32/usr/ mingw

bitbaking meta-toolchain succeds, and I get a cross-canadian gcc,
arm-oe-linux-gnueabi-gcc.exe

Grep:ing for "mingw/lib" in gcc-4.8.2 sources, I get hits in:

    configure.ac <http://configure.ac>:
FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L${prefix}/${target}/lib
-L${prefix}/mingw/lib
    gcc/config/i386/mingw32.h:#define STANDARD_STARTFILE_PREFIX_1
"/mingw/lib/"

Should any of these lines be patched to point to a user-supplied path ? If
not, could
any of you give a hint to where I should be digging instead ?

Thanks
Jacob
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20140615/6bf1f644/attachment.html>


More information about the yocto mailing list