2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-15 00:52:16 +00:00

fixed a unix-only shared library dependency problem

cleaned up an NT-only warning


[SVN r11768]
This commit is contained in:
Dave Abrahams
2001-11-22 05:42:11 +00:00
parent 6d240b1662
commit e462284fd4
2 changed files with 14 additions and 18 deletions

View File

@@ -43,8 +43,12 @@ flags gcc HDRS <include> ;
flags gcc STDHDRS : $(GCC_INCLUDE_DIRECTORY) ;
flags gcc STDLIBPATH : $(GCC_STDLIB_DIRECTORY) ;
flags gcc CFLAGS <shared-linkable>true : -fPIC ;
flags gcc LINKFLAGS <shared-linkable>true : -fPIC ;
if ! $(NT) # The compiler complains about -fPIC on NT
{
flags gcc CFLAGS <shared-linkable>true : -fPIC ;
flags gcc LINKFLAGS <shared-linkable>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

View File

@@ -43,8 +43,12 @@ flags gcc HDRS <include> ;
flags gcc STDHDRS : $(GCC_INCLUDE_DIRECTORY) ;
flags gcc STDLIBPATH : $(GCC_STDLIB_DIRECTORY) ;
flags gcc CFLAGS <shared-linkable>true : -fPIC ;
flags gcc LINKFLAGS <shared-linkable>true : -fPIC ;
if ! $(NT) # The compiler complains about -fPIC on NT
{
flags gcc CFLAGS <shared-linkable>true : -fPIC ;
flags gcc LINKFLAGS <shared-linkable>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