source: branches/samba-3.5.x/source4/build/m4/check_ld.m4

Last change on this file was 414, checked in by Herwig Bauernfeind, 16 years ago

Samba 3.5.0: Initial import

File size: 4.5 KB
Line 
1dnl SMB Build Environment LD Checks
2dnl -------------------------------------------------------
3dnl Copyright (C) Stefan (metze) Metzmacher 2004
4dnl Copyright (C) Jelmer Vernooij 2006
5dnl Released under the GNU GPL
6dnl -------------------------------------------------------
7dnl
8
9AC_PATH_PROG(PROG_LD,ld)
10LD=${PROG_LD}
11AC_PROG_LD_GNU
12LD=""
13
14AC_SUBST(BLDSHARED)
15AC_SUBST(LD)
16AC_SUBST(SYS_LDFLAGS)
17AC_SUBST(LDFLAGS)
18
19# Assume non-shared by default and override below
20# these are the defaults, good for lots of systems
21BLDSHARED="false"
22LD="${CC}"
23PICFLAG=""
24
25# allow for --with-hostld=gcc
26AC_ARG_WITH(hostld,[ --with-hostld=linker choose host linker],
27[HOSTLD=$withval],
28[HOSTLD=$HOSTCC])
29
30AC_MSG_CHECKING([whether to try to build shared libraries on $host_os])
31
32# and these are for particular systems
33case "$host_os" in
34 *linux*)
35 BLDSHARED="true"
36 SYS_LDFLAGS="-Wl,--export-dynamic"
37 ;;
38 *solaris*)
39 BLDSHARED="true"
40 if test "${GCC}" = "yes"; then
41 if test "${ac_cv_prog_gnu_ld}" = "yes"; then
42 SYS_LDFLAGS="-Wl,-E"
43 fi
44 fi
45 ;;
46 *sunos*)
47 BLDSHARED="true"
48 ;;
49 *netbsd* | *freebsd* | *dragonfly* )
50 BLDSHARED="true"
51 SYS_LDFLAGS="-Wl,--export-dynamic"
52 ;;
53 *openbsd*)
54 BLDSHARED="true"
55 SYS_LDFLAGS="-Wl,-Bdynamic"
56 ;;
57 *irix*)
58 BLDSHARED="true"
59 ;;
60 *aix*)
61 BLDSHARED="true"
62 SYS_LDFLAGS="-Wl,-brtl,-bexpall,-bbigtoc"
63 ;;
64 *hpux*)
65 # Use special PIC flags for the native HP-UX compiler.
66 BLDSHARED="true" # I hope this is correct
67 if test "$host_cpu" = "ia64"; then
68 SYS_LDFLAGS="-Wl,-E,+b/usr/local/lib/hpux32:/usr/lib/hpux32"
69 else
70 SYS_LDFLAGS="-Wl,-E,+b/usr/local/lib:/usr/lib"
71 fi
72 ;;
73 *osf*)
74 BLDSHARED="true"
75 ;;
76 *unixware*)
77 BLDSHARED="true"
78 ;;
79 *darwin*)
80 BLDSHARED="true"
81 ;;
82esac
83
84AC_MSG_RESULT($BLDSHARED)
85
86AC_MSG_CHECKING([LD])
87AC_MSG_RESULT([$LD])
88AC_MSG_CHECKING([LDFLAGS])
89AC_MSG_RESULT([$LDFLAGS])
90AC_MSG_CHECKING([SYS_LDFLAGS])
91AC_MSG_RESULT([$SYS_LDFLAGS])
92
93AC_SUBST(HOSTLD)
94
95AC_LIBREPLACE_STLD
96AC_LIBREPLACE_STLD_FLAGS
97
98AC_MSG_CHECKING([STLD])
99AC_MSG_RESULT([$STLD])
100AC_MSG_CHECKING([STLD_FLAGS])
101AC_MSG_RESULT([$STLD_FLAGS])
102
103AC_LD_PICFLAG
104AC_LD_EXPORT_DYNAMIC
105AC_LD_SHLIBEXT
106AC_LD_SONAMEFLAG
107AC_LIBREPLACE_SHLD
108AC_LIBREPLACE_SHLD_FLAGS
109AC_LIBREPLACE_MDLD
110AC_LIBREPLACE_MDLD_FLAGS
111AC_LIBREPLACE_RUNTIME_LIB_PATH_VAR
112
113#######################################################
114# test whether building a shared library actually works
115if test $BLDSHARED = true; then
116
117 AC_MSG_CHECKING([SHLD])
118 AC_MSG_RESULT([$SHLD])
119 AC_MSG_CHECKING([SHLD_FLAGS])
120 AC_MSG_RESULT([$SHLD_FLAGS])
121
122 AC_MSG_CHECKING([MDLD])
123 AC_MSG_RESULT([$MDLD])
124 AC_MSG_CHECKING([MDLD_FLAGS])
125 AC_MSG_RESULT([$MDLD_FLAGS])
126
127 AC_MSG_CHECKING([SHLIBEXT])
128 AC_MSG_RESULT([$SHLIBEXT])
129 AC_MSG_CHECKING([SONAMEFLAG])
130 AC_MSG_RESULT([$SONAMEFLAG])
131
132 AC_MSG_CHECKING([PICFLAG])
133 AC_MSG_RESULT([$PICFLAG])
134
135 AC_CACHE_CHECK([whether building shared libraries actually works],
136 [ac_cv_shlib_works],[
137 ac_cv_shlib_works=no
138 # try building a trivial shared library
139 # TODO: also test SONAMEFLAG
140 ${CC} ${CFLAGS} ${PICFLAG} -c ${srcdir-.}/../tests/shlib.c -o shlib.o &&
141 ${SHLD} ${SHLD_FLAGS} -o shlib.${SHLIBEXT} shlib.o &&
142 ac_cv_shlib_works=yes
143 rm -f shlib.${SHLIBEXT} shlib.o
144 ])
145 AC_CACHE_CHECK([whether building shared modules actually works],
146 [ac_cv_shmod_works],[
147 ac_cv_shmod_works=no
148 # try building a trivial shared library
149 ${CC} ${CFLAGS} ${PICFLAG} -c ${srcdir-.}/../tests/shlib.c -o shlib.o &&
150 ${MDLD} ${MDLD_FLAGS} -o shlib.${SHLIBEXT} shlib.o &&
151 ac_cv_shmod_works=yes
152 rm -f shlib.${SHLIBEXT} shlib.o
153 ])
154 if test $ac_cv_shlib_works = no; then
155 AC_MSG_ERROR(unable to build shared libraries)
156 fi
157 if test $ac_cv_shmod_works = no; then
158 AC_MSG_ERROR(unable to build shared modules)
159 fi
160fi
161
162AC_DEFINE_UNQUOTED(SHLIBEXT, "$SHLIBEXT", [Shared library extension])
163
164AC_MSG_CHECKING([if we can link using the selected flags])
165AC_TRY_RUN([#include "${srcdir-.}/../tests/trivial.c"],
166 AC_MSG_RESULT(yes),
167 AC_MSG_ERROR([we cannot link with the selected cc and ld flags. Aborting configure]),
168 AC_MSG_WARN([cannot run when cross-compiling]))
169
170
171USESHARED=false
172AC_SUBST(USESHARED)
173
174AC_ARG_ENABLE(dso,
175[ --enable-dso Enable using shared libraries internally (experimental)],
176[],[enable_dso=no])
177
178if test x"$enable_dso" = x"yes" -a x"$BLDSHARED" != x"true"; then
179 AC_MSG_ERROR([--enable-dso: no support for shared libraries])
180fi
181
182if test x"$enable_dso" != x"no"; then
183 USESHARED=$BLDSHARED
184fi
185
186AC_MSG_CHECKING([if binaries will use shared libraries])
187AC_MSG_RESULT([$USESHARED])
Note: See TracBrowser for help on using the repository browser.