diff --git a/gcc-tools.jam b/gcc-tools.jam index ae2d974b2..248ba4fdd 100644 --- a/gcc-tools.jam +++ b/gcc-tools.jam @@ -43,8 +43,12 @@ flags gcc HDRS ; flags gcc STDHDRS : $(GCC_INCLUDE_DIRECTORY) ; flags gcc STDLIBPATH : $(GCC_STDLIB_DIRECTORY) ; -flags gcc CFLAGS true : -fPIC ; -flags gcc LINKFLAGS true : -fPIC ; +if ! $(NT) # The compiler complains about -fPIC on NT +{ + flags gcc CFLAGS true : -fPIC ; + flags gcc LINKFLAGS true : -fPIC ; +} + if $(BETOOLS) { @@ -67,21 +71,15 @@ rule Link-action # will be "multiplied away" otherwise. The --exclude-symbols directive # proved to be neccessary with some versions of Cygwin. IMPLIB_COMMAND on $(<) = "-Wl,--exclude-symbols,_bss_end__:_bss_start__:_data_end__:_data_start__ -Wl,--out-implib," ; - # IMPLIB_COMMAND on $(<) = "-Wl,--out-implib," ; gcc-Link-action $(<) : $(>) ; } # for gcc, we repeat all libraries so that dependencies are always resolved actions gcc-Link-action bind NEEDLIBS { - $(GCC_BIN_DIRECTORY)g++ $(IMPLIB_COMMAND)$(<[2]) $(LINKFLAGS) -o "$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) + $(GCC_BIN_DIRECTORY)g++ $(IMPLIB_COMMAND)$(<[2]) $(LINKFLAGS) -o "$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) -Wl,-rpath-link,. } -# older actions -# $(GCC_BIN_DIRECTORY)dlltool -e $(<[1]:S=:D=:G=) -l "$(<[2])" "$(>)" -# $(GCC_BIN_DIRECTORY)g++ $(LINKFLAGS) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -o "$(<[1])" - - #### Cc ##### rule Cc-action diff --git a/v1/gcc-tools.jam b/v1/gcc-tools.jam index ae2d974b2..248ba4fdd 100644 --- a/v1/gcc-tools.jam +++ b/v1/gcc-tools.jam @@ -43,8 +43,12 @@ flags gcc HDRS ; flags gcc STDHDRS : $(GCC_INCLUDE_DIRECTORY) ; flags gcc STDLIBPATH : $(GCC_STDLIB_DIRECTORY) ; -flags gcc CFLAGS true : -fPIC ; -flags gcc LINKFLAGS true : -fPIC ; +if ! $(NT) # The compiler complains about -fPIC on NT +{ + flags gcc CFLAGS true : -fPIC ; + flags gcc LINKFLAGS true : -fPIC ; +} + if $(BETOOLS) { @@ -67,21 +71,15 @@ rule Link-action # will be "multiplied away" otherwise. The --exclude-symbols directive # proved to be neccessary with some versions of Cygwin. IMPLIB_COMMAND on $(<) = "-Wl,--exclude-symbols,_bss_end__:_bss_start__:_data_end__:_data_start__ -Wl,--out-implib," ; - # IMPLIB_COMMAND on $(<) = "-Wl,--out-implib," ; gcc-Link-action $(<) : $(>) ; } # for gcc, we repeat all libraries so that dependencies are always resolved actions gcc-Link-action bind NEEDLIBS { - $(GCC_BIN_DIRECTORY)g++ $(IMPLIB_COMMAND)$(<[2]) $(LINKFLAGS) -o "$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) + $(GCC_BIN_DIRECTORY)g++ $(IMPLIB_COMMAND)$(<[2]) $(LINKFLAGS) -o "$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) -Wl,-rpath-link,. } -# older actions -# $(GCC_BIN_DIRECTORY)dlltool -e $(<[1]:S=:D=:G=) -l "$(<[2])" "$(>)" -# $(GCC_BIN_DIRECTORY)g++ $(LINKFLAGS) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -o "$(<[1])" - - #### Cc ##### rule Cc-action