r19634: Only use --allow-undef-shlib for modules.
authorJelmer Vernooij <jelmer@samba.org>
Wed, 8 Nov 2006 02:01:31 +0000 (02:01 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:25:21 +0000 (14:25 -0500)
(This used to be commit e8f2a086be2a0553467738df711b1450ba559848)

source4/build/m4/check_ld.m4
source4/build/smb_build/makefile.pm

index 129ee00ebc618110eafcbf470a94d1b165cbc415..ad514054cd300aded0cebd13e6df6dbd32af2f05 100644 (file)
@@ -19,6 +19,7 @@ AC_SUBST(LD)
 AC_SUBST(LDFLAGS)
 AC_SUBST(SHLD)
 AC_SUBST(SHLD_FLAGS)
+AC_SUBST(SHLD_UNDEF_FLAGS)
 AC_SUBST(SHLIBEXT)
 AC_SUBST(SONAMEFLAG)
 AC_SUBST(PICFLAG)
@@ -42,7 +43,8 @@ AC_MSG_CHECKING([ability to build shared libraries])
 case "$host_os" in
        *linux*)
                BLDSHARED="true"
-               SHLD_FLAGS="-shared -Wl,-Bsymbolic -Wl,--allow-shlib-undefined" 
+               SHLD_FLAGS="-shared -Wl,-Bsymbolic"
+               SHLD_UNDEF_FLAGS="-Wl,--allow-shlib-undefined"
                LDFLAGS="-Wl,--export-dynamic"
                PICFLAG="-fPIC"
                SONAMEFLAG="-Wl,-soname="
index 4cd7e5681b7de77d79d0e97fafdcac698cf42307..eab713a4f3251cefb26606142cea79903ff96e95 100644 (file)
@@ -146,6 +146,7 @@ STLD_FLAGS=$self->{config}->{STLD_FLAGS}
 
 SHLD=$self->{config}->{SHLD}
 SHLD_FLAGS=$self->{config}->{SHLD_FLAGS} -L$libdir
+SHLD_UNDEF_FLAGS=$self->{config}->{SHLD_UNDEF_FLAGS}
 SHLIBEXT=$self->{config}->{SHLIBEXT}
 
 XSLTPROC=$self->{config}->{XSLTPROC}
@@ -243,11 +244,13 @@ sub SharedLibrary($$)
 
        push(@{$self->{all_objs}}, "\$($ctx->{TYPE}_$ctx->{NAME}_FULL_OBJ_LIST)");
 
+       my $extraflags = "";
        if ($ctx->{TYPE} eq "MODULE" and defined($ctx->{INIT_FUNCTION})) {
                my $init_fn = $ctx->{INIT_FUNCTION_TYPE};
                $init_fn =~ s/\(\*\)/init_module/;
                my $proto_fn = $ctx->{INIT_FUNCTION_TYPE};
                $proto_fn =~ s/\(\*\)/$ctx->{INIT_FUNCTION}/;
+               $extraflags = "\$(SHLD_UNDEF_FLAGS)";
 
                $self->output(<< "__EOD__"
 bin/$ctx->{NAME}_init_module.c:
@@ -285,7 +288,7 @@ $ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}: \$($ctx->{TYPE}_$ctx->{NAME}_DEPEND_
        \@echo Linking \$\@
        \@mkdir -p $ctx->{SHAREDDIR}
        \@\$(SHLD) \$(SHLD_FLAGS) -o \$\@ \$(INSTALL_LINK_FLAGS) \\
-               \$($ctx->{TYPE}_$ctx->{NAME}_LINK_FLAGS) \\
+               \$($ctx->{TYPE}_$ctx->{NAME}_LINK_FLAGS) $extraflags \\
                \$($ctx->{TYPE}_$ctx->{NAME}\_FULL_OBJ_LIST) $soarg \\
                $init_obj $singlesoarg 
 __EOD__