On 9/11/2010 00:30, Mario Emmenlauer wrote: > > Hi, > > On 09/09/2010 01:45 PM, Mario Emmenlauer wrote: >>> 2010/9/9 JonY<[email protected]>: >>>> On 9/9/2010 12:36, Nils Woetzel wrote: >>>>>>> cd gcc-4.5.1-build >>>>>>> ln -s /mypath/x86_64-w64-mingw32 ./mingw >>>>>>> >>>>>>> assuming, that you are building/configuring gcc in the folder >>>>>>> gcc-4.5.1-build - otherwise whatever path >>>>>>> I guess the howto assumes that /mypath is also the configure and >>>>>>> build >>>>>>> directory, than you do not have that problem, but if your >>>>>>> build/configure directory is somewhere totally else, than gcc does >>>>>>> not >>>>>>> know here to find the mingw folder >>>>>>> >>>>>>> make and make install runs smoothly afterwards!! >>>>>>> >>>>>> >>>>>> No, the symlink is done after install, you shouldn't be doing any >>>>>> symlinks during build time, unless I am misunderstanding something. >>>>> >>>>> I am not sure, what is right, but this is what the howto says: >>>>> http://mingw-w64.svn.sourceforge.net/viewvc/mingw-w64/branches/releases/v1.0/mingw-w64-doc/howto-build/mingw-w64-howto-build.txt?revision=3506&view=markup >>>>> line 230 and following: >>>>> 230 Step 3) GCC requires the x86_64-w64-mingw32 directory be mirrored >>>>> as a >>>>> 231 directory 'mingw' in the same root. So, if using configure >>>>> default >>>>> 232 /usr/local, type: >>>>> 233 ln -s /usr/local/x86_64-w64-mingw32 /usr/local/mingw >>>>> 234 or, for sysroot, type: >>>>> 235 ln -s /mypath/x86_64-w64-mingw32 /mypath/mingw >>>>> 236 >>>>> 237 Step 4) Manually create the x86_64-w64-mingw32/lib directory: >>>>> 238 mkdir -p /usr/local/x86_64-w64-mingw32/lib >>>>> 239 or, for sysroot: >>>>> 240 mkdir -p /mypath/x86_64-w64-mingw32/lib >>>>> 241 If it already exists and you get an error, ignore it. >>>>> 242 >>>>> 243 Step 5) Symlink x86_64-w64-mingw32/lib directory as >>>>> x86_64-w64-mingw32/lib64: >>>>> 244 ln -s /usr/local/x86_64-w64-mingw32/lib >>>>> /usr/local/x86_64-w64-mingw32/lib64 >>>>> 245 or, for sysroot: >>>>> 246 ln -s /mypath/x86_64-w64-mingw32/lib >>>>> /mypath/x86_64-w64-mingw32/lib64 >>>>> >>>> >>>> yes, those are the symlinks done after install-gcc target and crt is >>>> install. There are no manually created symlinks in the build directory. >>>> >>>>>>> After make install, the last thing I did was, to make symlinks in >>>>>>> sysroot or prefix >>>>>>> ln -s /mypath/lib/gcc/x86_64-w64-mingw32/lib32/libgcc_s.a >>>>>>> /mypath/x86_64-w64-mingw32/lib32/ >>>>>>> and >>>>>>> ln -s /mypath/lib/gcc/x86_64-w64-mingw32/lib64/libgcc_s.a >>>>>>> /mypath/x86_64-w64-mingw32/lib64/ >>>>>>> >>>>>>> compiler and linker works (at least -m32, I have not tried the 64bit) >>>>>>> >>>>>> >>>>>> This is a known issue when --enable-runtime-specific-libs is used, >>>>>> happens in Linux as well. >>>>>> >>>>> >>>>> I did configure with --enable-runtime-specific-libs so this makes >>>>> sense - I was not aware that would be the consequence.. >>>>> >>>>>>> There are only warnings, but ultimately, the error is: >>>>>>> /blue/meilerlab/apps/Linux2/x86_64/mingw-w64/2010.09.07/x86_64-w64-mingw32/bin/ld: >>>>>>> cannot find -lmingw32 >>>>>>> >>>>>>> the same for: >>>>>>> -lmingwex, -lmoldname, -lmsvcrt, -luser32, -lkernel32, -ladvapi32, >>>>>>> -lshell32 >>>>>> >>>>>> This does not occur for me. Perhaps you want to try >>>>>> --with-build-sysroot. >>>>> >>>>> I tried building binutils and gcc with --with-build-sysroot, and the >>>>> stage 2 gcc will fail with that error: >>>>> The directory that should contain system headers does not exist: >>>>> yes/mingw/include >>>>> >>>>> so I assume, that I have to specifically pass the sysroot, that I also >>>>> passed to --with-build-sysroot=/mypath >>>>> >>>>> but when I do this for binutils and gcc I get this error: >>>>> float.h .. error: #error Corrupt install of gcc's internal headers, or >>>>> search order was changed. >>>>> >>>>> There is something I still do not understand. >>>> >>>> I think Kai just fixed this error, but I'm not sure. Kai do you know the >>>> nature of this error? >>>> >>>>>>> The problem is, xgcc does not know about the lib32 mypath - when >>>>>>> calling >>>>>>> /blue/meilerlab/apps/Linux2/src/mingw-w64/build/x86_64-w64-mingw32/gcc-4.5.1/./gcc/xgcc >>>>>>> -m32 --print-search-dirs >>>>>>> >>>>>>> this is the output >>>>>>> libraries: >>>>>>> =/blue/meilerlab/apps/Linux2/src/mingw-w64/build/x86_64-w64-mingw32/gcc-4.5.1/gcc/../lib/gcc/x86_64-w64-mingw32/4.5.1/32/:/blue/meilerlab/apps/Linux2/src/mingw-w64/build/x86_64-w64-mingw32/gcc-4.5.1/gcc/../lib/gcc/32/:/blue/meilerlab/apps/Linux2/src/mingw-w64/build/x86_64-w64-mingw32/gcc-4.5.1/gcc/../lib/gcc/x86_64-w64-mingw32/4.5.1/../../../../x86_64-w64-mingw32/lib/x86_64-w64-mingw32/4.5.1/32/:/blue/meilerlab/apps/Linux2/src/mingw-w64/build/x86_64-w64-mingw32/gcc-4.5.1/gcc/../lib/gcc/x86_64-w64-mingw32/4.5.1/../../../../x86_64-w64-mingw32/lib/../lib32/:/blue/meilerlab/apps/Linux2/src/mingw-w64/build/x86_64-w64-mingw32/gcc-4.5.1/gcc/..//mingw/lib/x86_64-w64-mingw32/4.5.1/32/:/blue/meilerlab/apps/Linux2/src/mingw-w64/build/x86_64-w64-mingw32/gcc-4.5.1/gcc/..//mingw/lib/../lib32/:/blue/meilerlab/apps/Linux2/src/mingw-w64/build/x86_64-w64-mingw32/gcc-4.5.1/gcc/../lib/gcc/x86_64-w64-mingw32/4.5.1/:/blue/meilerlab/apps/Linux2/src/mingw-w64/build/x86_64-w64-mingw32 >>>> /g >>>>>> cc-4.5.1/gcc/../lib/gcc/:/blue/meilerlab/apps/Linux2/src/mingw-w64/build/x86_64-w64-mingw32/gcc-4.5.1/gcc/../lib/gcc/x86_64-w64-mingw32/4.5.1/../../../../x86_64-w64-mingw32/lib/x86_64-w64-mingw32/4.5.1/:/blue/meilerlab/apps/Linux2/src/mingw-w64/build/x86_64-w64-mingw32/gcc-4.5.1/gcc/../lib/gcc/x86_64-w64-mingw32/4.5.1/../../../../x86_64-w64-mingw32/lib/:/blue/meilerlab/apps/Linux2/src/mingw-w64/build/x86_64-w64-mingw32/gcc-4.5.1/gcc/..//mingw/lib/x86_64-w64-mingw32/4.5.1/:/blue/meilerlab/apps/Linux2/src/mingw-w64/build/x86_64-w64-mingw32/gcc-4.5.1/gcc/..//mingw/lib/ >>>>>>> >>>>>>> it only list the builddir subfolders of: >>>>>>> /blue/meilerlab/apps/Linux2/src/mingw-w64/build/x86_64-w64-mingw32/gcc-4.5.1/ >>>>>>> but my sysroot and prefix are both: >>>>>>> /blue/meilerlab/apps/Linux2/x86_64/mingw-w64/2010.09.07/ >>>>>>> and that is where everything is installed >>>>>>> >>>>>> >>>>>> Thats because uninstalled gcc works by searching directory by relative >>>>>> paths. >>>>> >>>>> I guess I understand that, but how does the uninstalled xgcc know >>>>> about the mingw include and lib, lib32, lib64 directory - if it just >>>>> searches in the source or build directory? Where does the build >>>>> directory have to be relative to the mingw folder? >>>>> >>>> >>>> xgcc is normally called with -B...path, -L and such, so it normally >>>> finds its libraries. >>>> >>>>>> I tried a recent 4.6 gcc build, I didn't need to do this. >>>>> >>>>> I tried the mingw source distro with gcc and binutils packaged from >>>>> 20100907 but I could not get it work. >>>>> I guess we will have to wait for answers from other people having >>>>> similar problmes building the cross compiler. >>>>> >>>>> I guess I can give some details on my system: >>>>> uname -a >>>>> Linux hostname 2.6.18-164.15.1.el5 #1 SMP Wed Mar 17 11:30:06 EDT 2010 >>>>> x86_64 x86_64 x86_64 GNU/Linux >>>>> on this system I want to compile the cross compiler for mingw-w64 >>>>> multilib, and I do not have root rights (It is actually going to be >>>>> installed in a network share, so I have to use prefix and >>>>> with-sysroot) >>>>> >>>>> Thanks for your help though and for the good work on the mingw-w64! >>>>> Compiling with VisualStudio just takes hours for our project, and with >>>>> the gcc cross compiler, we can use distcc and it compiles in 5 >>>>> minutes! and links in 1 minute! >>>> >>>> You could try the auto-builds for linux, but I think you need a fairly >>>> recent glibc installed. >>>> >>> >>> Well, for 4.6 the include order had changed and cause by a typo (of >>> myself) if failed badly for float.h. This is fixed on our trunk. >>> Yeah, binutils HEAD changed for 64-bit windows target. It enables by >>> default 32-bit support too. This seems to lead to some issue in our >>> crt make. I noticed that yesterday, too. By giving our configure >>> explicit the options '--disable-lib32 --enable-lib64' I could solve >>> this issue. >> >> Ok, that could be the indicator. I will try later today. The only thing >> that still worries me is that I had originally reported the error months >> ago - was binutils changed that long ago? > > I tried compiling with: > MINGW_CONFIG_EXTRA_ARGS_MULTI_N := --disable-lib32 --enable-lib64 > > This did not help, I get the same warning "ld: skipping incompatible..." > and then ld fails to find all libs. Here is the logfile: > http://data.marssoft.de/makebuildroot-test.mk-log20100910a.txt.lzma > > Anything else I could try? Can someone please confirm that he/she > can compile a canadian cross on x86_64 Linux from scratch with the > Makefile makebuildroot-test.mk? Help is greatly appreciated! >
Its not really a canadian cross at all if it fails to build the first stage compiler. I have tried this on x86_64-linux, crossing fro x86_64-linux to 64bit mingw-w64 as well, I cannot reproduce the failure. I'm very much out of ideas. Maybe you can try with gcc trunk instead of 4.5.1. ------------------------------------------------------------------------------ Automate Storage Tiering Simply Optimize IT performance and efficiency through flexible, powerful, automated storage tiering capabilities. View this brief to learn how you can reduce costs and improve performance. http://p.sf.net/sfu/dell-sfdev2dev _______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
