redoconf: move -Wl,-rpath flags to shlib.rc and add -Wl,-z,origin.
It was kind of ugly to have this kind of special flag directly in link.od; now we detect whether it's available. This also gives a project the ability to override the flag in some other way if they want. As a result, rc/shlib.rc needs to be included in all.rc.od if you want to create or link against shared libraries. While we're here, also add -Wl,-z,origin on platforms where it works. This is apparently needed for FreeBSD 8.0 at least, and probably other platforms. Reported-by: Wayne Scott <wsc9tt@gmail.com>
This commit is contained in:
parent
1eb7b2879d
commit
88250334da
4 changed files with 24 additions and 6 deletions
|
|
@ -27,17 +27,29 @@ try_macos_style() {
|
|||
|
||||
if [ -n "$STATIC" ]; then
|
||||
echo "--enable-static specified; not building shared libraries." >&2
|
||||
rc_replaceln HAVE_SHLIB ""
|
||||
rc_replaceln HAVE_SHLIB "STATIC"
|
||||
elif [ -n "$NOSHARED" ]; then
|
||||
echo "--disable-shared specified; not building shared libraries." >&2
|
||||
rc_replaceln HAVE_SHLIB ""
|
||||
rc_replaceln HAVE_SHLIB "STATIC"
|
||||
elif try_unix_style; then
|
||||
rc_replaceln HAVE_SHLIB UNIX
|
||||
elif try_macos_style; then
|
||||
rc_replaceln HAVE_SHLIB MACOS
|
||||
else
|
||||
echo "Not building shared libraries on this platform." >&2
|
||||
rc_undo
|
||||
rc_replaceln HAVE_SHLIB ""
|
||||
rc_replaceln HAVE_SHLIB "STATIC"
|
||||
fi
|
||||
|
||||
if [ "$HAVE_SHLIB" != "STATIC" ]; then
|
||||
x='-Wl,-z,origin'
|
||||
if (appendln LDFLAGS "$x" && rc_compile cc link); then
|
||||
rc_appendln LDFLAGS "$x"
|
||||
fi
|
||||
|
||||
x='-Wl,-rpath,$ORIGIN'
|
||||
if (appendln LDFLAGS "$x" && rc_compile cc link); then
|
||||
rc_appendln LDFLAGS "$x"
|
||||
fi
|
||||
fi
|
||||
|
||||
rc_save
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue