This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: Trouble with building multilib GCC (MinGW)
2012/3/15 Ian Lance Taylor <iant@google.com>:
> niXman <i.nixman@gmail.com> writes:
>
>> 2012/3/14 Ian Lance Taylor <iant@google.com>:
>>> When I look at the fourth line of the pastebin link you posted earlier
>>> (http://pastebin.com/KiGHVgVQ) I see an invocation of xgcc. ÂI can not
>>> see the path used to search for the crt file in that line. ÂThe -B and
>>> -L options passed to xgcc are not the final search path. ÂThe final
>>> search path is computed by the gcc driver by applying multilib
>>> transformations to the -B and -L options. ÂIn order to see the actual
>>> search path, you will need to run that exact command with the -v option.
>>
>> I just now noticed that xgcc is used.
>> According to the instructions [1], core-cross-compiler (make all-gcc)
>> must be built first, and with its help multilib-crt and gcc (make all)
>> is built. How is it possible to determine that xgcc runs/uses
>> <sysroot>/bin/i686-w64-mingw32-gcc.exe?
>
> I very much doubt that it does. ÂHowever, you can see the exact set of
> commands that the xgcc driver runs by using the -v option.
>
>> After building and
>> installation (make all-gcc & make install-gcc) core-cross-compiler, I
>> set <sysroot>/bin in PATH.
>>
>>
>>> Thanks. ÂThat all looks fine but I now realize that I need something
>>> else. ÂThe output of:
>>>
>>> gcc --print-multi-os-directory
>> $ i686-w64-mingw32-gcc --print-multi-os-directory
>> ../lib
>>
>>
>>> gcc --print-multi-os-directory -m32
>> $ i686-w64-mingw32-gcc --print-multi-os-directory -m32
>> ../lib
>>
>>
>>> gcc --print-multi-os-directory -m64
>> $ i686-w64-mingw32-gcc --print-multi-os-directory -m64
>> ../lib64
>
> Thanks, but thinking about it I guess what I really need to know is the
> output of those commands using
>
> /home/niXman/mingw-build/gcc-4.6.3/./gcc/xgcc -B/home/niXman/mingw-build/gcc-4.6.3/./gcc/
>
> as that is the compiler that is running.
$ /home/niXman/mingw-build/gcc-4.6.3/./gcc/xgcc
-B/home/niXman/mingw-build/gcc-4.6.3/./gcc/ --print-multi-directory
.
$ /home/niXman/mingw-build/gcc-4.6.3/./gcc/xgcc
-B/home/niXman/mingw-build/gcc-4.6.3/./gcc/ --print-multi-directory
-m32
.
$ /home/niXman/mingw-build/gcc-4.6.3/./gcc/xgcc
-B/home/niXman/mingw-build/gcc-4.6.3/./gcc/ --print-multi-directory
-m64
64
$ /home/niXman/mingw-build/gcc-4.6.3/./gcc/xgcc
-B/home/niXman/mingw-build/gcc-4.6.3/./gcc/ --print-multi-os-directory
../lib
$ /home/niXman/mingw-build/gcc-4.6.3/./gcc/xgcc
-B/home/niXman/mingw-build/gcc-4.6.3/./gcc/ --print-multi-os-directory
-m32
../lib
$ /home/niXman/mingw-build/gcc-4.6.3/./gcc/xgcc
-B/home/niXman/mingw-build/gcc-4.6.3/./gcc/ --print-multi-os-directory
-m64
../lib64
>
> The question you are asking is basically why that xgcc command did not
> find the 64-bit crt file. ÂAs a first step, I'm trying to verify that it
> is configured to look in the expected directory. ÂThat is, that it is
> configured such that -m64 causes it to append ../lib64 to the -B and -L
> paths that are passed to it.
>
> Can you confirm that the 64-bit crt file is in one of those directory,
> e.g., /home/niXman/mb-0.8/../mingw-x32/i686-w64-mingw32/lib/../lib64 ?
Yes. In /home/niXman/mb-0.8/../mingw-x32/i686-w64-mingw32/lib64
>
> Ian
--
Regards,
 niXman