summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjörn Jacke <bj@sernet.de>2010-05-05 20:17:39 +0200
committerKarolin Seeger <kseeger@samba.org>2010-05-17 09:50:18 +0200
commit03f440071cf33aa24733f730cdfcded68c8b3e34 (patch)
tree0b048c637976745a80eb69495828d432046c83f8
parentb2fe935f1bed08706820cecd3876ec9ec4946916 (diff)
downloadsamba-03f440071cf33aa24733f730cdfcded68c8b3e34.tar.gz
s3:configure: not simply check for "ld" but for the linker used by $CC
this hopefully fixes Solaris' gcc build which uses the system ld by default. All in all we should clean up most of the compiler and linker flags depending on the actual compilers and linkers we use. Only some tweaks are OS-specific. A cleanup in this area should be done along with the move to a new build system (whensoever that will be ...). (cherry picked from commit 1969b4acc3fd7c124e288d0495b9b4665d4b42db) Fix bug #7385 (Can't compile. Undefined symbol 'main'). (cherry picked from commit eff42fa66e561069959c401492c3b82a09b4742b)
-rw-r--r--source3/configure.in10
-rw-r--r--source3/m4/aclocal.m44
2 files changed, 7 insertions, 7 deletions
diff --git a/source3/configure.in b/source3/configure.in
index 3111d5aaae6..9672c934117 100644
--- a/source3/configure.in
+++ b/source3/configure.in
@@ -208,15 +208,14 @@ AC_SAMBA_PERL([true], [merged_build_possible=no])
AC_CHECK_TOOL(AR, ar)
-dnl Check if we use GNU ld
-LD=ld
+dnl Check if we (actually our C compiler!) use GNU ld
AC_PROG_LD_GNU
dnl Certain versions of GNU ld the default is not to have the
dnl --allow-shlib-undefined flag defined. This causes a stackload of
dnl warnings when building modules.
if test "$ac_cv_prog_gnu_ld" = "yes"; then
- ac_cv_gnu_ld_version=`$LD -v 2>/dev/null | head -1`
+ ac_cv_gnu_ld_version=`$CC -Wl,-v /dev/null 2>/dev/null | head -1`
AC_MSG_CHECKING(GNU ld release date)
changequote(,)dnl
ac_cv_gnu_ld_date=`echo $ac_cv_gnu_ld_version | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'`
@@ -1510,16 +1509,17 @@ DSO_EXPORTS=""
;;
*solaris*) AC_DEFINE(SUNOS5,1,[Whether the host os is solaris])
BLDSHARED="true"
- LDSHFLAGS="-G"
- SONAMEFLAG="-h "
if test "${GCC}" = "yes"; then
PICFLAG="-fPIC"
SONAMEFLAG="-Wl,-soname="
if test "${ac_cv_prog_gnu_ld}" = "yes"; then
DYNEXP="-Wl,-E"
fi
+ # TODO: need to add $CFLAGS here for explicit 64-bit builds?
+ LDSHFLAGS="-shared"
else
PICFLAG="-KPIC"
+ SONAMEFLAG="-h "
## ${CFLAGS} added for building 64-bit shared
## libs using Sun's Compiler
LDSHFLAGS="-G \${CFLAGS}"
diff --git a/source3/m4/aclocal.m4 b/source3/m4/aclocal.m4
index bdad6fa6e50..77224874f34 100644
--- a/source3/m4/aclocal.m4
+++ b/source3/m4/aclocal.m4
@@ -363,9 +363,9 @@ EOF
dnl Copied from libtool.m4
AC_DEFUN(AC_PROG_LD_GNU,
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
+[AC_CACHE_CHECK([if the linker used by compiler is GNU ld], ac_cv_prog_gnu_ld,
[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
-if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
+if $CC -Wl,-v /dev/null 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
ac_cv_prog_gnu_ld=yes
else
ac_cv_prog_gnu_ld=no