On 9/9/2010 04:27, Mario Emmenlauer wrote:
>
> Hi JonY,
>
> On 09/07/2010 12:03 PM, JonY wrote:
>> On 9/7/2010 15:20, Mario Emmenlauer wrote:
>>>> On 9/7/2010 01:34, Mario Emmenlauer wrote:
>>>>> On 09/06/2010 04:52 PM, JonY wrote:
>>>>>> On 9/6/2010 19:50, Mario Emmenlauer wrote:
>>>>>>>> On 9/6/2010 15:52, Mario Emmenlauer wrote:
>>>>>>>>> I'm the original author of the issue [0] that Ismail referenced.
>>>>>>>>> During
>>>>>>>>> the last months since my report, I've repeatedly re-tried numerous
>>>>>>>>> times,
>>>>>>>>> but failed to build the canadian cross. Actually, back then mostly
>>>>>>>>> the
>>>>>>>>> same suggestions where given, tried, and failed. As you can see
>>>>>>>>> from
>>>>>>>>> my
>>>>>>>>> post, I've tried the following compile instructions:
>>>>>>>>>       - makefile: mingw64 svn
>>>>>>>>> experimental/buildsystem/makebuildroot-test.mk
>>>>>>>>>       - makefile: mingw64 svn
>>>>>>>>> experimental/buildsystem/makebuildroot.mk
>>>>>>>>>       - compile instructions from mingw64 sourceforge wiki
>>>>>>>>> all with variations of multilib, gcc-versions, ld-versions etc...
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Would it maybe be a good idea that someone who got the canadian
>>>>>>>>> cross
>>>>>>>>> running create a working Makefile? There are the excellent
>>>>>>>>> Makefiles
>>>>>>>>> "makebuildroot-test.mk" and "makebuildroot.mk" (from your project),
>>>>>>>>> that
>>>>>>>>> both follow the wiki compile instructions (more or less), but both
>>>>>>>>> fail
>>>>>>>>> in the pre-last step of ld linking.
>>>>>>>>> A working Makefile would be a good documentation, reference, and a
>>>>>>>>> perfect
>>>>>>>>> standard for regression testing.
>>>>>>>>>
>>>>>>>>> [0]
>>>>>>>>> http://www.mail-archive.com/[email protected]/msg00839.html
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>> Did you link lib to lib64? And do you have lib32? Native cross-back
>>>>>>>> works fine for me.
>>>>>>>
>>>>>>> As I wrote above, I tried amongst many other things your (unmodified)
>>>>>>> makefile "makebuildroot-test.mk", so yes lib was linked to lib64.
>>>>>>>
>>>>>>>
>>>>>>>> Are you talking about a triple cross? I tried
>>>>>>>> i686-linux->sparc-linux-mingw64 before, it works fine too.
>>>>>>>>
>>>>>>>> You might have better chance with makebuildroot-test.mk for canadian
>>>>>>>> cross, I've used it for the sparc triple cross.
>>>>>>>
>>>>>>> Hmm not sure I follow here. Have you a running canadian cross fro
>>>>>>> mingw-w64 on Linux? As I wrote above, I have tried the suggested
>>>>>>> "makebuildroot-test.mk" for canadian cross, and it fails with the
>>>>>>> described error: "make all-target-libgcc", message is:
>>>>>>>       [cut]/build/root/x86_64-w64-mingw32/bin/ld: skipping
>>>>>>> incompatible
>>>>>>> \
>>>>>>>       [cut]/build/root/mingw/lib/libmingw32.a when searching for
>>>>>>> -lmingw32
>>>>>>>
>>>>>>> Which revision of the makefile have you tested?
>>>>>>>
>>>>>>
>>>>>> Those are actually warnings, ld will continue to walk through the
>>>>>> directories. Can you post the last command and all of its
>>>>>> errors/warnings?
>>>>>
>>>>> You are right, I posted the warnings only, sorry:( The error is that
>>>>> ld fails to find a compatible libmingw32. I don't have the log here
>>>>> right now, but can produce it if you like? Here a bit more information
>>>>> from my original post [0]:
>>>>>
>>>>> There are more identical errors for other libs like kernel32 and
>>>>> msvcrt.
>>>>>
>>>>> objdump lists the correct format:
>>>>>      [cut]/build/root/bin/x86_64-w64-mingw32-objdump --archive-headers \
>>>>>      [cut]/build/root/x86_64-w64-mingw32/lib/libmingw32.a
>>>>>        [...]
>>>>>        lib64_libmingw32_a-tlsmcrt.o:     file format pe-x86-64
>>>>>
>>>>> Also, ld seems to be valid:
>>>>>      [cut]/build/root/bin/x86_64-w64-mingw32-ld: supported targets: \
>>>>>        pe-x86-64 pei-x86-64 elf64-x86-64 elf64-l1om elf64-little
>>>>> elf64-big
>>>>> \
>>>>>        elf32-little elf32-big srec symbolsrec verilog tekhex binary ihex
>>>>>
>>>>
>>>> I suspect it was scanning for 32bit objects. 32bit support also seems to
>>>> be missing in ld.
>>>>
>>>> Check the makefile if you've enabled multilib options.
>>>
>>> I have tried it about ten times repeatedly with and without multilib,
>>> and every time started from scratch (removing all sources and binaries).
>>> I have redirected all output to a logfile and checked that the switches
>>> for enabling or disabling multilib where indeed used, so I'm sure there
>>> was no error in that part.
>>>
>>> BTW, I once messed up the multilib switches, then it did not even
>>> compile until the second run, it failed in the first bootstrapping
>>> of gcc. Now it fails in the second run, final step when it should
>>> link gcc.
>>>
>>
>> This is very strange, can you attach the build logs, including the
>> command used to invoke the makefile?
>
> Here is the logfile:
>     http://data.marssoft.de/makebuildroot-test.mk-log20100907a.txt.lzma
>
> I used the following changes and/or versions of packages (note esp. the
> gcc-4.5.1 and pthreads from 2010-02-28):
>
>    GMP_VERSION ?= 5.0.1
>    MPFR_VERSION ?= 3.0.0
>    MPC_VERSION ?= 0.8.2
>    PPL_VERSION ?= 0.10.2
>    CLOOG_VERSION ?= 0.15.9
>    MINGW_BRANCH ?= trunk
>    MINGW_REVISION ?= HEAD
>    GCC_BRANCH ?= tags/gcc_4_5_1_release
>    PTHREADS_CVS_CO_ARGS ?= -D 2010-02-28
>    MAKE_OPTS ?= -j4
>
> The logfile is complete, starting with unpacking the updated source
> tree and ending with ld failing to link. Other than the options
> shown above I did not modify anything, except for adding the pthreads
> checkout revision to the CVS command.
>
> All the best,
>
>     Mario
>
>

Something is not right about the logs.

GCC was built with --disable-multilib, but the crt is able to build with 
-m32 passes without errors.

CRT also wasn't configured with --enable-lib32, but builds it anyway. It 
should only build if configured explicitly.

And finally ld could not understand its own libraries. I assume you are 
using binutils from CVS, since that 32bit target is enabled 
automatically even without specifying --enable-targets.

I honestly do not know what is going on.

Try doing ENABLE_MULTILIB=Y for the makefile.

------------------------------------------------------------------------------
This SF.net Dev2Dev email is sponsored by:

Show off your parallel programming skills.
Enter the Intel(R) Threading Challenge 2010.
http://p.sf.net/sfu/intel-thread-sfd
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to