|
Boost-Build : |
From: Douglas Gregor (doug.gregor_at_[hidden])
Date: 2005-12-12 10:15:21
Hi Paul,
I'm forwarding this on to the Boost.Build list. Your fix looks
correct to me, but they'll know for sure. Thanks!
Doug
On Dec 9, 2005, at 12:29 AM, Paul wrote:
> I had a problem with boost 1.33.1, building it on windows XP inside
> the
> msys (MinGW) environment.
>
> The link step generates this command:
>
> "g++" "-Wl,--enable-auto-image-base"
> "-Wl,--exclude-
> symbols,_bss_end__:_bss_start__:_data_end__:_data_start__"
>
> "-Wl,--out-implib,..\..\..\bin\boost\libs\signals\build
> \boost_signals.dll\mingw\debug\boost_signals-mgw-d-1_33_1.lib"
> -g -shared -Wl,--allow-multiple-definition -mno-cygwin -o
> "..\..\..\bin\boost\libs\signals\build\boost_signals.dll\mingw\debug
> \boost_signals-mgw-d-1_33_1.dll"
> -L""
> "..\..\..\bin\boost\libs\signals\build\boost_signals.dll\mingw\debug
> \trackable.obj"
> "..\..\..\bin\boost\libs\signals\build\boost_signals.dll\mingw\debug
> \connection.obj"
> "..\..\..\bin\boost\libs\signals\build\boost_signals.dll\mingw\debug
> \named_slot_map.obj"
> "..\..\..\bin\boost\libs\signals\build\boost_signals.dll\mingw\debug
> \signal_base.obj"
> "..\..\..\bin\boost\libs\signals\build\boost_signals.dll\mingw\debug
> \slot.obj"
>
>
>
> and it fails, giving a message about not being able to find a
> symbol for
> a method in trackable.
>
>
> I edited tools/build/v1/mingw-tools.jam and added this line:
> flags mingw STDLIBPATH : $(GCC_BIN_DIRECTORY) ;
> + flags mingw LIBPATH : $(GCC_BIN_DIRECTORY) ;
> }
>
>
> And tried again. This time it worked, with the following command:
>
>
> "g++" "-Wl,--enable-auto-image-base"
> "-Wl,--exclude-
> symbols,_bss_end__:_bss_start__:_data_end__:_data_start__"
>
> "-Wl,--out-implib,..\..\..\bin\boost\libs\signals\build
> \boost_signals.dll\mingw\release\boost_signals-mgw-1_33_1.lib"
> -s -shared -Wl,--allow-multiple-definition -mno-cygwin -o
> "..\..\..\bin\boost\libs\signals\build\boost_signals.dll\mingw
> \release\boost_signals-mgw-1_33_1.dll"
> -L"" -L""
> "..\..\..\bin\boost\libs\signals\build\boost_signals.dll\mingw
> \release\trackable.obj"
> "..\..\..\bin\boost\libs\signals\build\boost_signals.dll\mingw
> \release\connection.obj"
> "..\..\..\bin\boost\libs\signals\build\boost_signals.dll\mingw
> \release\named_slot_map.obj"
> "..\..\..\bin\boost\libs\signals\build\boost_signals.dll\mingw
> \release\signal_base.obj"
> "..\..\..\bin\boost\libs\signals\build\boost_signals.dll\mingw
> \release\slot.obj"
>
>
>
> The difference is that there is an EXTRA -L"" in the command.
>
> I suspect that having any -L"" is a bad idea, and if there is no
> parameter, it should be omitted all together. I bet this command
> works
> ONLY because, to g++, it looks like
> g++ blah blah -L"-L" ie the second -L becomes the parameter for the
> first -L (spaces are allowed after the -L flag).
>
>
> I dont understand bjam's Jamfiles well enough to fix this
> properly. Can
> someone help put together a patch for this?
>
> Thanks
> Paul
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk