[SAMBA3:PATCH] always use -fPIC

David Collier-Brown davec-b at rogers.com
Thu Sep 28 00:55:08 GMT 2006


   It used to be a performance issue, but I notice that the current
SPARCs are ~ equally fast wit/without position-independent code...

--dave

Stefan (metze) Metzmacher wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Hi,
> 
> I've created a patch that avoids the rebuilding of all object
> files to get shared libs and modules.
> 
> As we always use -fPIE for the normal object files (when supported)
> we can just use -fPIC for the normal ones too (with the same effect).
> 
> the logic is like this:
> 
> if -pie and -fPIE are supported, we initialize PICFLAG=-fPIE
> and add -pie to the LDFLAGS for binaries.
> 
> when enable_shared is "yes" we overwrite PICFLAG with the value
> depending on the system (-fPIC on most systems)
> 
> Does anyone see problems with this approach?
> 
> We use this for a long time in samba4 now, but we
> don't have much tested shared lib/module support there...
> 
> Comments are welcome:-)
> 
> metze
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.2 (GNU/Linux)
> Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org
> 
> iD8DBQFFGpHum70gjA5TCD8RAr+LAJ9NmNZO2gMuVGlr7LaELtQaX74regCfT36H
> 1GXmSWvXnPXNXe3kbZcUGTA=
> =yo2u
> -----END PGP SIGNATURE-----
> 
> 
> ------------------------------------------------------------------------
> 
> === Makefile.in
> ==================================================================
> --- Makefile.in	(revision 29702)
> +++ Makefile.in	(local)
> @@ -21,11 +21,12 @@
>  CFLAGS=@CFLAGS@
>  CPPFLAGS=-DHAVE_CONFIG_H @CPPFLAGS@
>  EXEEXT=@EXEEXT@
> -LDFLAGS=@LDFLAGS@
> +LDFLAGS=@PIE_LDFLAGS@ @LDFLAGS@
>  AR=@AR@
>  LDSHFLAGS=@LDSHFLAGS@ @LDFLAGS@
>  WINBIND_NSS_LDSHFLAGS=@WINBIND_NSS_LDSHFLAGS@ @LDFLAGS@
>  AWK=@AWK@
> +PICFLAG=@PICFLAG@
>  DYNEXP=@DYNEXP@
>  PYTHON=@PYTHON@
>  PERL=@PERL@
> @@ -583,8 +584,6 @@
>  	$(LIBSMB_OBJ) $(LIBMSRPC_OBJ) $(LIBMSRPC_GEN_OBJ) $(RPC_PARSE_OBJ) $(PASSDB_OBJ) \
>  	$(GROUPDB_OBJ) $(KRBCLIENT_OBJ) $(SMBLDAP_OBJ) $(LDB_OBJ)
>  
> -LIBBIGBALLOFMUD_PICOBJS = $(LIBBIGBALLOFMUD_OBJ:.o=. at PICSUFFIX@)
> -
>  CLIENT_OBJ1 = client/client.o client/clitar.o rpc_client/cli_pipe.o \
>  			  rpc_parse/parse_rpc.o rpc_client/cli_netlogon.o \
>  			  rpc_parse/parse_net.o
> @@ -733,8 +732,6 @@
>  		$(SECRETS_OBJ) $(SMBLDAP_OBJ) $(LIBSAMBA_OBJ) \
>  		$(RPC_PARSE_OBJ1) $(DOSERR_OBJ) $(LDB_OBJ)
>  
> -PAM_SMBPASS_PICOOBJ = $(PAM_SMBPASS_OBJ_0:.o=. at PICSUFFIX@)
> -
>  IDMAP_OBJ     = sam/idmap.o sam/idmap_util.o @IDMAP_STATIC@
>  
>  WINBINDD_OBJ1 = \
> @@ -808,7 +805,7 @@
>  LDBDEL_OBJ = $(LDB_CMDLINE_OBJ) lib/ldb/tools/ldbdel.o
>  LDBMODIFY_OBJ = $(LDB_CMDLINE_OBJ) lib/ldb/tools/ldbmodify.o
>  
> -POPT_OBJS=popt/findme.o popt/popt.o popt/poptconfig.o \
> +POPT_OBJ=popt/findme.o popt/popt.o popt/poptconfig.o \
>            popt/popthelp.o popt/poptparse.o
>  
>  INIPARSER_OBJ = iniparser/src/iniparser.o iniparser/src/dictionary.o \
> @@ -901,15 +898,15 @@
>  	$(EVERYTHING_PROGS)
>  
>  .SUFFIXES:
> -.SUFFIXES: .c .o . at PICSUFFIX@ .lo
> +.SUFFIXES: .c .o .lo
>  
>  SHOWFLAGS:
> -	@echo "Using FLAGS = $(FLAGS)"
> -	@echo "      LIBS = $(LIBS)"
> +	@echo "Using FLAGS     = $(FLAGS)"
> +	@echo "      LIBS      = $(LIBS)"
> +	@echo "      LDFLAGS   = $(LDFLAGS)"
>  	@echo "      LDSHFLAGS = $(LDSHFLAGS)"
> -	@echo "      LDFLAGS = $(LDFLAGS)"
> -	@echo "      PIE_CFLAGS = @PIE_CFLAGS@"
> -	@echo "      PIE_LDFLAGS = @PIE_LDFLAGS@"
> +	@echo "      PICFLAG   = $(PICFLAG)"
> +	@echo "      DYNEXP    = $(DYNEXP)"
>  
>  MAKEDIR = || exec false; \
>  	  if test -d "$$dir"; then :; else \
> @@ -924,34 +921,20 @@
>  	 dir=`echo $@ | sed 's,/[^/]*$$,,;s,^$$,.,'` $(MAKEDIR); fi
>  	@if test -n "$(CC_CHECKER)"; then \
>  	  echo "Checking  $*.c with '$(CC_CHECKER)'";\
> -	  $(CC_CHECKER) -I. -I$(srcdir) $(FLAGS) @PIE_CFLAGS@ -c $< -o $@;\
> +	  $(CC_CHECKER) -I. -I$(srcdir) $(FLAGS) $(PICFLAG) -c $< -o $@;\
>  	 fi
>  	@echo Compiling $*.c
> -	@$(CC) -I. -I$(srcdir) $(FLAGS) @PIE_CFLAGS@ -c $< -o $@ && exit 0;\
> +	@$(CC) -I. -I$(srcdir) $(FLAGS) $(PICFLAG) -c $< -o $@ && exit 0;\
>  		echo "The following command failed:" 1>&2;\
> -		echo "$(CC) -I. -I$(srcdir) $(FLAGS) @PIE_CFLAGS@ -c $< -o $@" 1>&2;\
> -		$(CC) -I. -I$(srcdir) $(FLAGS) @PIE_CFLAGS@ -c $< -o $@ >/dev/null 2>&1
> +		echo "$(CC) -I. -I$(srcdir) $(FLAGS) $(PICFLAG) -c $< -o $@" 1>&2;\
> +		$(CC) -I. -I$(srcdir) $(FLAGS) $(PICFLAG) -c $< -o $@ >/dev/null 2>&1
>  @BROKEN_CC@	-mv `echo $@ | sed 's%^.*/%%g'` $@
>  
> -.c. at PICSUFFIX@:
> -	@if (: >> $@ || : > $@) >/dev/null 2>&1; then rm -f $@; else \
> -	  dir=`echo $@ | sed 's,/[^/]*$$,,;s,^$$,.,'` $(MAKEDIR); fi
> -	@if test -n "$(CC_CHECKER)"; then \
> -	  echo "Checking  $*.c with '$(CC_CHECKER)' and @PICFLAGS@";\
> -	  $(CC_CHECKER) -I. -I$(srcdir) $(FLAGS) @PICFLAGS@ -c $< -o $*. at PICSUFFIX@;\
> -	 fi
> -	@echo Compiling $*.c with @PICFLAGS@
> -	@$(CC) -I. -I$(srcdir) $(FLAGS) @PICFLAGS@ -c $< -o $*. at PICSUFFIX@ && exit 0;\
> -		echo "The following command failed:" 1>&2;\
> -		echo "$(CC) -I. -I$(srcdir) $(FLAGS) @PICFLAGS@ -c $< -o $*. at PICSUFFIX@" 1>&2;\
> -		$(CC) -I. -I$(srcdir) $(FLAGS) @PICFLAGS@ -c $< -o $*. at PICSUFFIX@ >/dev/null 2>&1
> - at BROKEN_CC@	-mv `echo $@ | sed -e 's%^.*/%%g' -e 's%\. at PICSUFFIX@$$%.o%'` $@
> -
>  # this adds support for precompiled headers. To use it, install a snapshot
>  # of gcc-3.4 and run 'make pch' before you do the main build. 
>  pch: proto_exists
>  	rm -f $(builddir)/include/includes.h.gch
> -	$(CC) -I. -I$(srcdir) $(FLAGS) @PIE_CFLAGS@ -c $(srcdir)/include/includes.h -o $(builddir)/include/includes.h.gch
> +	$(CC) -I. -I$(srcdir) $(FLAGS) $(PICFLAG) -c $(srcdir)/include/includes.h -o $(builddir)/include/includes.h.gch
>  
>  # These dependencies are only approximately correct: we want to make
>  # sure Samba's paths are updated if ./configure is re-run.  Really it
> @@ -961,32 +944,18 @@
>  
>  dynconfig.o: dynconfig.c Makefile
>  	@echo Compiling $*.c
> -	@$(CC) $(FLAGS) $(PATH_FLAGS) @PIE_CFLAGS@ -c $(srcdir)/dynconfig.c -o $@ && exit 0;\
> +	@$(CC) $(FLAGS) $(PATH_FLAGS) $(PICFLAG) -c $(srcdir)/dynconfig.c -o $@ && exit 0;\
>  		echo "The following command failed:" 1>&2;\
> -		echo "$(CC) $(FLAGS) $(PATH_FLAGS) @PIE_CFLAGS@ -c $(srcdir)/dynconfig.c -o $@" 1>&2;\
> -		$(CC) $(FLAGS) $(PATH_FLAGS) @PIE_CFLAGS@ -c $(srcdir)/dynconfig.c -o $@ >/dev/null 2>&1
> +		echo "$(CC) $(FLAGS) $(PATH_FLAGS) $(PICFLAG) -c $(srcdir)/dynconfig.c -o $@" 1>&2;\
> +		$(CC) $(FLAGS) $(PATH_FLAGS) $(PICFLAG) -c $(srcdir)/dynconfig.c -o $@ >/dev/null 2>&1
>  
> -dynconfig. at PICSUFFIX@: dynconfig.c Makefile
> -	@if (: >> $@ || : > $@) >/dev/null 2>&1; then rm -f $@; else \
> -	  dir=`echo $@ | sed 's,/[^/]*$$,,;s,^$$,.,'` $(MAKEDIR); fi
> -	@echo Compiling $*.c with @PICFLAGS@
> -	@$(CC) -I. -I$(srcdir) $(FLAGS) $(PATH_FLAGS) @PICFLAGS@ -c $(srcdir)/dynconfig.c -o $@
> - at BROKEN_CC@	-mv `echo $@ | sed -e 's%^.*/%%g' -e 's%\. at PICSUFFIX@$$%.o%'` $@
> -
>  lib/version.o: lib/version.c include/version.h
>  	@echo Compiling $*.c
> -	@$(CC) -I. -I$(srcdir) $(FLAGS) $(PATH_FLAGS) @PIE_CFLAGS@ -c $(srcdir)/lib/version.c -o $@ 
> +	@$(CC) -I. -I$(srcdir) $(FLAGS) $(PATH_FLAGS) $(PICFLAG) -c $(srcdir)/lib/version.c -o $@ 
>  
> -lib/version. at PICSUFFIX@: lib/version.c include/version.h
> -	@if (: >> $@ || : > $@) >/dev/null 2>&1; then rm -f $@; else \
> -	  dir=`echo $@ | sed 's,/[^/]*$$,,;s,^$$,.,'` $(MAKEDIR); fi
> -	@echo Compiling $*.c with @PICFLAGS@
> -	@$(CC) -I. -I$(srcdir) $(FLAGS) $(PATH_FLAGS) @PICFLAGS@ -c $(srcdir)/lib/version.c -o $@
> - at BROKEN_CC@	-mv `echo $@ | sed -e 's%^.*/%%g' -e 's%\. at PICSUFFIX@$$%.o%'` $@
> -
>  smbd/build_options.o: smbd/build_options.c Makefile include/config.h include/build_env.h include/proto.h
>  	@echo Compiling $*.c
> -	@$(CC) $(FLAGS) $(PATH_FLAGS) @PIE_CFLAGS@ -c smbd/build_options.c -o $@
> +	@$(CC) $(FLAGS) $(PATH_FLAGS) $(PICFLAG) -c smbd/build_options.c -o $@
>  
>  smbd/build_options.c: include/config.h.in script/mkbuildoptions.awk
>  	@echo Generating $@
> @@ -999,244 +968,244 @@
>  
>  bin/smbd at EXEEXT@: $(SMBD_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(SMBD_OBJ) $(LDFLAGS) $(LDAP_LIBS) \
> +	@$(CC) $(FLAGS) -o $@ $(SMBD_OBJ) $(LDFLAGS) $(LDAP_LIBS) \
>  		$(KRB5LIBS) $(DYNEXP) $(PRINT_LIBS) $(AUTH_LIBS) \
>  		$(ACL_LIBS) $(PASSDB_LIBS) $(LIBS) @POPTLIBS@ @SMBD_LIBS@ 
>  
>  bin/nmbd at EXEEXT@: $(NMBD_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(NMBD_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS)
> +	@$(CC) $(FLAGS) -o $@ $(NMBD_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS)
>  
>  bin/swat at EXEEXT@: $(SWAT_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(SWAT_OBJ) $(LDFLAGS) $(DYNEXP) $(PRINT_LIBS) \
> +	@$(CC) $(FLAGS) -o $@ $(SWAT_OBJ) $(LDFLAGS) $(DYNEXP) $(PRINT_LIBS) \
>  	  $(AUTH_LIBS) $(LIBS) $(PASSDB_LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS)
>  
>  bin/rpcclient at EXEEXT@: $(RPCCLIENT_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(LDFLAGS) $(PASSDB_LIBS) $(RPCCLIENT_OBJ) \
> +	@$(CC) $(FLAGS) -o $@ $(LDFLAGS) $(PASSDB_LIBS) $(RPCCLIENT_OBJ) \
>  		$(DYNEXP) $(TERMLDFLAGS) $(TERMLIBS) $(LIBS) @POPTLIBS@ \
>  		$(KRB5LIBS) $(LDAP_LIBS)
>  
>  bin/smbclient at EXEEXT@: $(CLIENT_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(CLIENT_OBJ) $(LDFLAGS) $(DYNEXP) $(TERMLDFLAGS) $(TERMLIBS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS)
> +	@$(CC) $(FLAGS) -o $@ $(CLIENT_OBJ) $(LDFLAGS) $(DYNEXP) $(TERMLDFLAGS) $(TERMLIBS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS)
>  
>  bin/smbctool at EXEEXT@: $(TOOL_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(TOOL_OBJ) $(LDFLAGS) $(DYNEXP) $(TERMLDFLAGS) $(TERMLIBS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS) -Lbin -lsmbclient
> +	@$(CC) $(FLAGS) -o $@ $(TOOL_OBJ) $(LDFLAGS) $(DYNEXP) $(TERMLDFLAGS) $(TERMLIBS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS) -Lbin -lsmbclient
>  
>  bin/net at EXEEXT@: $(NET_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(NET_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(UUID_LIBS) $(LDAP_LIBS) $(PASSDB_LIBS) $(TERMLDFLAGS) $(TERMLIBS) $(NSCD_LIBS)
> +	@$(CC) $(FLAGS) -o $@ $(NET_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(UUID_LIBS) $(LDAP_LIBS) $(PASSDB_LIBS) $(TERMLDFLAGS) $(TERMLIBS) $(NSCD_LIBS)
>  
>  bin/profiles at EXEEXT@: $(PROFILES_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(PROFILES_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(LDAP_LIBS) @POPTLIBS@
> +	@$(CC) $(FLAGS) -o $@ $(PROFILES_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(LDAP_LIBS) @POPTLIBS@
>  
>  bin/smbspool at EXEEXT@: $(CUPS_OBJ) bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(CUPS_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
> +	@$(CC) $(FLAGS) -o $@ $(CUPS_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
>  
>  bin/smbmount at EXEEXT@: $(MOUNT_OBJ) bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(MOUNT_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
> +	@$(CC) $(FLAGS) -o $@ $(MOUNT_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
>  
>  bin/smbmnt at EXEEXT@: $(MNT_OBJ) bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(MNT_OBJ) $(DYNEXP) $(LDFLAGS) 
> +	@$(CC) $(FLAGS) -o $@ $(MNT_OBJ) $(DYNEXP) $(LDFLAGS) 
>  
>  bin/smbumount at EXEEXT@: $(UMOUNT_OBJ) bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(UMOUNT_OBJ) $(DYNEXP) $(LDFLAGS)
> +	@$(CC) $(FLAGS) -o $@ $(UMOUNT_OBJ) $(DYNEXP) $(LDFLAGS)
>  
>  bin/mount.cifs at EXEEXT@: $(CIFS_MOUNT_OBJ) bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(CIFS_MOUNT_OBJ) $(DYNEXP) $(LDFLAGS)
> +	@$(CC) $(FLAGS) -o $@ $(CIFS_MOUNT_OBJ) $(DYNEXP) $(LDFLAGS)
>  
>  bin/umount.cifs at EXEEXT@: $(CIFS_UMOUNT_OBJ) bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(CIFS_UMOUNT_OBJ) $(DYNEXP) $(LDFLAGS)
> +	@$(CC) $(FLAGS) -o $@ $(CIFS_UMOUNT_OBJ) $(DYNEXP) $(LDFLAGS)
>  
>  bin/testparm at EXEEXT@: $(TESTPARM_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(TESTPARM_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(LDAP_LIBS) @POPTLIBS@
> +	@$(CC) $(FLAGS) -o $@ $(TESTPARM_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(LDAP_LIBS) @POPTLIBS@
>  
>  bin/smbstatus at EXEEXT@: $(STATUS_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(STATUS_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(LDAP_LIBS) \
> +	@$(CC) $(FLAGS) -o $@ $(STATUS_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(LDAP_LIBS) \
>  	@POPTLIBS@
>  
>  bin/smbcontrol at EXEEXT@: $(SMBCONTROL_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) -DUSING_SMBCONTROL $(FLAGS) @PIE_LDFLAGS@ -o $@ \
> +	@$(CC) -DUSING_SMBCONTROL $(FLAGS) -o $@ \
>  	$(SMBCONTROL_OBJ) $(DYNEXP) $(LDFLAGS) \
>  	$(LIBS) $(LDAP_LIBS) @LIBUNWIND_PTRACE@ @POPTLIBS@
>  
>  bin/smbtree at EXEEXT@: $(SMBTREE_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(SMBTREE_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS)
> +	@$(CC) $(FLAGS) -o $@ $(SMBTREE_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS)
>  
>  bin/smbpasswd at EXEEXT@: $(SMBPASSWD_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(SMBPASSWD_OBJ) $(LDFLAGS) $(PASSDB_LIBS) \
> +	@$(CC) $(FLAGS) -o $@ $(SMBPASSWD_OBJ) $(LDFLAGS) $(PASSDB_LIBS) \
>  		$(DYNEXP) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS)
>  
>  bin/pdbedit at EXEEXT@: $(PDBEDIT_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(PDBEDIT_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @POPTLIBS@ $(PASSDB_LIBS) $(LDAP_LIBS)
> +	@$(CC) $(FLAGS) -o $@ $(PDBEDIT_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @POPTLIBS@ $(PASSDB_LIBS) $(LDAP_LIBS)
>  
>  bin/smbget at EXEEXT@: $(SMBGET_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(SMBGET_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @POPTLIBS@  $(KRB5LIBS) $(LDAP_LIBS) $(NSCD_LIBS)
> +	@$(CC) $(FLAGS) -o $@ $(SMBGET_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @POPTLIBS@  $(KRB5LIBS) $(LDAP_LIBS) $(NSCD_LIBS)
>  
>  bin/samtest at EXEEXT@: $(SAMTEST_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(SAMTEST_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(DYNEXP) $(LIBS) @POPTLIBS@ $(PASSDB_LIBS) $(KRB5LIBS) $(LDAP_LIBS)
> +	@$(CC) $(FLAGS) -o $@ $(SAMTEST_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(DYNEXP) $(LIBS) @POPTLIBS@ $(PASSDB_LIBS) $(KRB5LIBS) $(LDAP_LIBS)
>  
>  bin/nmblookup at EXEEXT@: $(NMBLOOKUP_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(NMBLOOKUP_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @POPTLIBS@ $(LDAP_LIBS)
> +	@$(CC) $(FLAGS) -o $@ $(NMBLOOKUP_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @POPTLIBS@ $(LDAP_LIBS)
>  
>  bin/smbtorture at EXEEXT@: $(SMBTORTURE_OBJ) bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(SMBTORTURE_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
> +	@$(CC) $(FLAGS) -o $@ $(SMBTORTURE_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
>  
>  bin/talloctort at EXEEXT@: $(TALLOCTORT_OBJ) bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(TALLOCTORT_OBJ) $(LDFLAGS) \
> +	@$(CC) $(FLAGS) -o $@ $(TALLOCTORT_OBJ) $(LDFLAGS) \
>  		$(DYNEXP) $(LIBS) $(LDAP_LIBS)
>  
>  bin/masktest at EXEEXT@: $(MASKTEST_OBJ) bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(MASKTEST_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
> +	@$(CC) $(FLAGS) -o $@ $(MASKTEST_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
>  
>  bin/msgtest at EXEEXT@: $(MSGTEST_OBJ) bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(MSGTEST_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
> +	@$(CC) $(FLAGS) -o $@ $(MSGTEST_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
>  
>  bin/smbcacls at EXEEXT@: $(SMBCACLS_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(SMBCACLS_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) @POPTLIBS@ \
> +	@$(CC) $(FLAGS) -o $@ $(SMBCACLS_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) @POPTLIBS@ \
>  	$(KRB5LIBS) $(LDAP_LIBS) $(NSCD_LIBS)
>  
>  bin/smbcquotas at EXEEXT@: $(SMBCQUOTAS_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(SMBCQUOTAS_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) @POPTLIBS@ \
> +	@$(CC) $(FLAGS) -o $@ $(SMBCQUOTAS_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) @POPTLIBS@ \
>  	$(KRB5LIBS) $(LDAP_LIBS) $(NSCD_LIBS)
>  
>  bin/eventlogadm at EXEEXT@: $(EVTLOGADM_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(EVTLOGADM_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(LDAP_LIBS) @POPTLIBS@
> +	@$(CC) $(FLAGS) -o $@ $(EVTLOGADM_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(LDAP_LIBS) @POPTLIBS@
>  
>  bin/sharesec at EXEEXT@: $(SHARESEC_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(SHARESEC_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(LDAP_LIBS) @POPTLIBS@ 
> +	@$(CC) $(FLAGS) -o $@ $(SHARESEC_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(LDAP_LIBS) @POPTLIBS@ 
>  
>  bin/locktest at EXEEXT@: $(LOCKTEST_OBJ) bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(LOCKTEST_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
> +	@$(CC) $(FLAGS) -o $@ $(LOCKTEST_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
>  
>  bin/nsstest at EXEEXT@: $(NSSTEST_OBJ) bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(NSSTEST_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS)  $(LDAP_LIBS)
> +	@$(CC) $(FLAGS) -o $@ $(NSSTEST_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS)  $(LDAP_LIBS)
>  
>  bin/pdbtest at EXEEXT@: $(PDBTEST_OBJ) bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(PDBTEST_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(PASSDB_LIBS) $(LIBS) @POPTLIBS@
> +	@$(CC) $(FLAGS) -o $@ $(PDBTEST_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(PASSDB_LIBS) $(LIBS) @POPTLIBS@
>  
>  bin/vfstest at EXEEXT@: $(VFSTEST_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(VFSTEST_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(DYNEXP) $(PRINT_LIBS) $(AUTH_LIBS) $(ACL_LIBS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS) @SMBD_LIBS@ $(NSCD_LIBS)
> +	@$(CC) $(FLAGS) -o $@ $(VFSTEST_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(DYNEXP) $(PRINT_LIBS) $(AUTH_LIBS) $(ACL_LIBS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS) @SMBD_LIBS@ $(NSCD_LIBS)
>  
>  bin/smbiconv at EXEEXT@: $(SMBICONV_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(SMBICONV_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(DYNEXP) $(LIBS) @POPTLIBS@
> +	@$(CC) $(FLAGS) -o $@ $(SMBICONV_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(DYNEXP) $(LIBS) @POPTLIBS@
>  
>  bin/log2pcap at EXEEXT@: $(LOG2PCAP_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(LOG2PCAP_OBJ) $(LDFLAGS) $(DYNEXP) @POPTLIBS@ $(LIBS)
> +	@$(CC) $(FLAGS) -o $@ $(LOG2PCAP_OBJ) $(LDFLAGS) $(DYNEXP) @POPTLIBS@ $(LIBS)
>  
>  bin/locktest2 at EXEEXT@: $(LOCKTEST2_OBJ) bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(LOCKTEST2_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
> +	@$(CC) $(FLAGS) -o $@ $(LOCKTEST2_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
>  
>  bin/rpctorture at EXEEXT@: $(RPCTORTURE_OBJ) bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(RPCTORTURE_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
> +	@$(CC) $(FLAGS) -o $@ $(RPCTORTURE_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
>  
>  bin/debug2html at EXEEXT@: $(DEBUG2HTML_OBJ) bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(DEBUG2HTML_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS)
> +	@$(CC) $(FLAGS) -o $@ $(DEBUG2HTML_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS)
>  
>  bin/smbfilter at EXEEXT@: $(SMBFILTER_OBJ) bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(SMBFILTER_OBJ) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
> +	@$(CC) $(FLAGS) -o $@ $(SMBFILTER_OBJ) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
>  
>  
>  bin/ldbedit: $(LDBEDIT_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(LDBEDIT_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(UUID_LIBS) $(LDAP_LIBS) $(PASSDB_LIBS) $(TERMLDFLAGS) $(TERMLIBS) $(NSCD_LIBS)
> +	@$(CC) $(FLAGS) -o $@ $(LDBEDIT_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(UUID_LIBS) $(LDAP_LIBS) $(PASSDB_LIBS) $(TERMLDFLAGS) $(TERMLIBS) $(NSCD_LIBS)
>  
>  bin/ldbsearch: $(LDBSEARCH_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(LDBSEARCH_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(UUID_LIBS) $(LDAP_LIBS) $(PASSDB_LIBS) $(TERMLDFLAGS) $(TERMLIBS) $(NSCD_LIBS)
> +	@$(CC) $(FLAGS) -o $@ $(LDBSEARCH_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(UUID_LIBS) $(LDAP_LIBS) $(PASSDB_LIBS) $(TERMLDFLAGS) $(TERMLIBS) $(NSCD_LIBS)
>  
>  bin/ldbadd: $(LDBADD_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(LDBADD_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(UUID_LIBS) $(LDAP_LIBS) $(PASSDB_LIBS) $(TERMLDFLAGS) $(TERMLIBS) $(NSCD_LIBS)
> +	@$(CC) $(FLAGS) -o $@ $(LDBADD_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(UUID_LIBS) $(LDAP_LIBS) $(PASSDB_LIBS) $(TERMLDFLAGS) $(TERMLIBS) $(NSCD_LIBS)
>  
>  bin/ldbmodify: $(LDBMODIFY_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(LDBMODIFY_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(UUID_LIBS) $(LDAP_LIBS) $(PASSDB_LIBS) $(TERMLDFLAGS) $(TERMLIBS) $(NSCD_LIBS)
> +	@$(CC) $(FLAGS) -o $@ $(LDBMODIFY_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(UUID_LIBS) $(LDAP_LIBS) $(PASSDB_LIBS) $(TERMLDFLAGS) $(TERMLIBS) $(NSCD_LIBS)
>  
>  bin/ldbdel: $(LDBDEL_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(LDBDEL_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(UUID_LIBS) $(LDAP_LIBS) $(PASSDB_LIBS) $(TERMLDFLAGS) $(TERMLIBS) $(NSCD_LIBS)
> +	@$(CC) $(FLAGS) -o $@ $(LDBDEL_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(UUID_LIBS) $(LDAP_LIBS) $(PASSDB_LIBS) $(TERMLDFLAGS) $(TERMLIBS) $(NSCD_LIBS)
>  
> -bin/libaddns. at SHLIBEXT@: $(LIBADDNS_OBJ:.o=. at PICSUFFIX@)
> +bin/libaddns. at SHLIBEXT@: $(LIBADDNS_OBJ)
>  	@echo Linking libaddns shared library $@
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(LIBADDNS_OBJ:.o=. at PICSUFFIX@) $(LDFLAGS) $(LIBS) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(LIBADDNS_OBJ) $(LDFLAGS) $(LIBS) \
>  		$(KRB5LIBS) $(UUID_LIBS)\
>  		@SONAMEFLAG@`basename $@`.$(LIBADDNS_MAJOR)
>  
> -bin/libaddns.a: $(LIBADDNS_OBJ:.o=. at PICSUFFIX@)
> +bin/libaddns.a: $(LIBADDNS_OBJ)
>  	@echo Linking libaddns non-shared library $@
> -	@-$(AR) -rc $@ $(LIBADDNS_OBJ:.o=. at PICSUFFIX@)
> +	@-$(AR) -rc $@ $(LIBADDNS_OBJ)
>  
> -bin/libsmbclient. at SHLIBEXT@: $(LIBSMBCLIENT_OBJ:.o=. at PICSUFFIX@)
> +bin/libsmbclient. at SHLIBEXT@: $(LIBSMBCLIENT_OBJ)
>  	@echo Linking libsmbclient shared library $@
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(LIBSMBCLIENT_OBJ:.o=. at PICSUFFIX@) $(LDFLAGS) $(LIBS) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(LIBSMBCLIENT_OBJ) $(LDFLAGS) $(LIBS) \
>  		$(KRB5LIBS) $(LDAP_LIBS) \
>  		@SONAMEFLAG@`basename $@`.$(LIBSMBCLIENT_MAJOR)
>  
> -bin/libsmbclient.a: $(LIBSMBCLIENT_OBJ:.o=. at PICSUFFIX@)
> +bin/libsmbclient.a: $(LIBSMBCLIENT_OBJ)
>  	@echo Linking libsmbclient non-shared library $@
> -	@-$(AR) -rc $@ $(LIBSMBCLIENT_OBJ:.o=. at PICSUFFIX@)
> +	@-$(AR) -rc $@ $(LIBSMBCLIENT_OBJ)
>  
> -bin/libsmbsharemodes. at SHLIBEXT@: $(LIBSMBSHAREMODES_OBJ:.o=. at PICSUFFIX@)
> +bin/libsmbsharemodes. at SHLIBEXT@: $(LIBSMBSHAREMODES_OBJ)
>  	@echo Linking libsmbsharemodes shared library $@
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(LIBSMBSHAREMODES_OBJ:.o=. at PICSUFFIX@) $(LDFLAGS) $(LIBS) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(LIBSMBSHAREMODES_OBJ) $(LDFLAGS) $(LIBS) \
>  		$(KRB5LIBS) $(LDAP_LIBS) \
>  		@SONAMEFLAG@`basename $@`.$(LIBSMBSHAREMODES_MAJOR)
>  
> -bin/libsmbsharemodes.a: $(LIBSMBSHAREMODES_OBJ:.o=. at PICSUFFIX@)
> +bin/libsmbsharemodes.a: $(LIBSMBSHAREMODES_OBJ)
>  	@echo Linking libsmbsharemodes non-shared library $@
> -	@-$(AR) -rc $@ $(LIBSMBSHAREMODES_OBJ:.o=. at PICSUFFIX@)
> +	@-$(AR) -rc $@ $(LIBSMBSHAREMODES_OBJ)
>  
> -bin/libmsrpc. at SHLIBEXT@: $(CAC_OBJ:.o=. at PICSUFFIX@)
> +bin/libmsrpc. at SHLIBEXT@: $(CAC_OBJ)
>  	@echo Linking libmsrpc shared library $@
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(CAC_OBJ:.o=. at PICSUFFIX@) $(LDFLAGS) $(LIBS) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(CAC_OBJ) $(LDFLAGS) $(LIBS) \
>  	@SONAMEFLAG@`basename $@`.$(LIBMSRPC_MAJOR)
>  
> -bin/libmsrpc.a: $(CAC_OBJ:.o=. at PICSUFFIX@)
> +bin/libmsrpc.a: $(CAC_OBJ)
>  	@echo Linking libmsrpc non-shared library $@
> -	@-$(AR) -rc $@ $(CAC_OBJ:.o=. at PICSUFFIX@)
> +	@-$(AR) -rc $@ $(CAC_OBJ)
>  
>  # This is probably wrong for anything other than the GNU linker. 
> -bin/libbigballofmud. at SHLIBEXT@: $(LIBBIGBALLOFMUD_PICOBJS)
> +bin/libbigballofmud. at SHLIBEXT@: $(LIBBIGBALLOFMUD_OBJ)
>  	@echo Linking bigballofmud shared library $@
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(LIBBIGBALLOFMUD_PICOBJS) $(LIBS) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(LIBBIGBALLOFMUD_OBJ) $(LIBS) \
>  		$(PASSDB_LIBS) $(IDMAP_LIBS) $(KRB5LIBS) $(LDAP_LIBS) \
>  		@SONAMEFLAG@`basename $@`.$(LIBBIGBALLOFMUD_MAJOR)
>  	ln -snf libbigballofmud.so bin/libbigballofmud.so.0
> @@ -1328,157 +1297,154 @@
>  
>  bin/winbindd at EXEEXT@: $(WINBINDD_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo "Linking $@"
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(WINBINDD_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) \
> +	@$(CC) $(FLAGS) -o $@ $(WINBINDD_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) \
>  		@POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS) $(PASSDB_LIBS)
>  
> -# Please don't add .o files to libnss_winbind, libnss_wins, or the pam_winbind
> -# libraries.  Add to the appropriate PICOBJ variable instead.
> -
> - at WINBIND_NSS@: $(WINBIND_NSS_OBJ:.o=. at PICSUFFIX@)
> + at WINBIND_NSS@: $(WINBIND_NSS_OBJ)
>  	@echo "Linking $@"
> -	@$(SHLD) $(WINBIND_NSS_LDSHFLAGS) -o $@ $(WINBIND_NSS_OBJ:.o=. at PICSUFFIX@) \
> +	@$(SHLD) $(WINBIND_NSS_LDSHFLAGS) -o $@ $(WINBIND_NSS_OBJ) \
>  		@WINBIND_NSS_EXTRA_LIBS@ @SONAMEFLAG@`basename $@`@NSSSONAMEVERSIONSUFFIX@
>  
> - at WINBIND_WINS_NSS@: $(WINBIND_WINS_NSS_OBJ:.o=. at PICSUFFIX@)
> + at WINBIND_WINS_NSS@: $(WINBIND_WINS_NSS_OBJ)
>  	@echo "Linking $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(WINBIND_WINS_NSS_OBJ:.o=. at PICSUFFIX@) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(WINBIND_WINS_NSS_OBJ) \
>  		$(LDAP_LIBS) $(KRB5LIBS) $(LIBS) \
>  		@SONAMEFLAG@`basename $@`@NSSSONAMEVERSIONSUFFIX@
>  
> -bin/pam_winbind. at SHLIBEXT@: $(PAM_WINBIND_OBJ:.o=. at PICSUFFIX@) bin/.dummy
> +bin/pam_winbind. at SHLIBEXT@: $(PAM_WINBIND_OBJ) bin/.dummy
>  	@echo "Linking shared library $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(PAM_WINBIND_OBJ:.o=. at PICSUFFIX@) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(PAM_WINBIND_OBJ) \
>  		@SONAMEFLAG@`basename $@` -lpam @INIPARSERLIBS@
>  
> -bin/builtin. at SHLIBEXT@: $(AUTH_BUILTIN_OBJ:.o=. at PICSUFFIX@)
> +bin/builtin. at SHLIBEXT@: $(AUTH_BUILTIN_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_BUILTIN_OBJ:.o=. at PICSUFFIX@) @SONAMEFLAG@`basename $@`
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_BUILTIN_OBJ) @SONAMEFLAG@`basename $@`
>  
> -bin/domain. at SHLIBEXT@: $(AUTH_DOMAIN_OBJ:.o=. at PICSUFFIX@)
> +bin/domain. at SHLIBEXT@: $(AUTH_DOMAIN_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_DOMAIN_OBJ:.o=. at PICSUFFIX@) @SONAMEFLAG@`basename $@`
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_DOMAIN_OBJ) @SONAMEFLAG@`basename $@`
>  
> -bin/script. at SHLIBEXT@: $(AUTH_SCRIPT_OBJ:.o=. at PICSUFFIX@)
> +bin/script. at SHLIBEXT@: $(AUTH_SCRIPT_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_SCRIPT_OBJ:.o=. at PICSUFFIX@) @SONAMEFLAG@`basename $@`
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_SCRIPT_OBJ) @SONAMEFLAG@`basename $@`
>  
> -bin/smbserver. at SHLIBEXT@: $(AUTH_SERVER_OBJ:.o=. at PICSUFFIX@)
> +bin/smbserver. at SHLIBEXT@: $(AUTH_SERVER_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_SERVER_OBJ:.o=. at PICSUFFIX@) @SONAMEFLAG@`basename $@`
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_SERVER_OBJ) @SONAMEFLAG@`basename $@`
>  
> -bin/winbind. at SHLIBEXT@: $(AUTH_WINBIND_OBJ:.o=. at PICSUFFIX@)
> +bin/winbind. at SHLIBEXT@: $(AUTH_WINBIND_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_WINBIND_OBJ:.o=. at PICSUFFIX@) @SONAMEFLAG@`basename $@`
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_WINBIND_OBJ) @SONAMEFLAG@`basename $@`
>  
> -bin/unix. at SHLIBEXT@: $(AUTH_UNIX_OBJ:.o=. at PICSUFFIX@)
> +bin/unix. at SHLIBEXT@: $(AUTH_UNIX_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_UNIX_OBJ:.o=. at PICSUFFIX@) @SONAMEFLAG@`basename $@`
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_UNIX_OBJ) @SONAMEFLAG@`basename $@`
>  
> -bin/sam. at SHLIBEXT@: $(AUTH_SAM_OBJ:.o=. at PICSUFFIX@)
> +bin/sam. at SHLIBEXT@: $(AUTH_SAM_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_SAM_OBJ:.o=. at PICSUFFIX@) @SONAMEFLAG@`basename $@`
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_SAM_OBJ) @SONAMEFLAG@`basename $@`
>  
> -bin/ldapsam. at SHLIBEXT@: passdb/pdb_ldap. at PICSUFFIX@
> +bin/ldapsam. at SHLIBEXT@: passdb/pdb_ldap.o
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) $(LDAP_LIBS) -o $@ passdb/pdb_ldap. at PICSUFFIX@ \
> +	@$(SHLD) $(LDSHFLAGS) $(LDAP_LIBS) -o $@ passdb/pdb_ldap.o \
>  		@SONAMEFLAG@`basename $@`
>  
> -bin/tdbsam. at SHLIBEXT@: passdb/pdb_tdb. at PICSUFFIX@
> +bin/tdbsam. at SHLIBEXT@: passdb/pdb_tdb.o
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ passdb/pdb_tdb. at PICSUFFIX@ \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ passdb/pdb_tdb.o \
>  		@SONAMEFLAG@`basename $@`
>  
> -bin/smbpasswd. at SHLIBEXT@: passdb/pdb_smbpasswd. at PICSUFFIX@
> +bin/smbpasswd. at SHLIBEXT@: passdb/pdb_smbpasswd.o
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ passdb/pdb_smbpasswd. at PICSUFFIX@ \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ passdb/pdb_smbpasswd.o \
>  		@SONAMEFLAG@`basename $@`
>  
> -bin/rid. at SHLIBEXT@: sam/idmap_rid. at PICSUFFIX@
> +bin/rid. at SHLIBEXT@: sam/idmap_rid.o
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ sam/idmap_rid. at PICSUFFIX@ \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ sam/idmap_rid.o \
>  		@SONAMEFLAG@`basename $@`
>  
> -bin/ad. at SHLIBEXT@: sam/idmap_ad. at PICSUFFIX@
> +bin/ad. at SHLIBEXT@: sam/idmap_ad.o
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ sam/idmap_ad. at PICSUFFIX@ \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ sam/idmap_ad.o \
>  		@SONAMEFLAG@`basename $@`
>  
> -bin/weird. at SHLIBEXT@: $(DEVEL_HELP_WEIRD_OBJ:.o=. at PICSUFFIX@)
> +bin/weird. at SHLIBEXT@: $(DEVEL_HELP_WEIRD_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(DEVEL_HELP_WEIRD_OBJ:.o=. at PICSUFFIX@) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(DEVEL_HELP_WEIRD_OBJ) \
>  		@SONAMEFLAG@`basename $@`
>  
> -bin/CP850. at SHLIBEXT@: $(CP850_OBJ:.o=. at PICSUFFIX@)
> +bin/CP850. at SHLIBEXT@: $(CP850_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(CP850_OBJ:.o=. at PICSUFFIX@) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(CP850_OBJ) \
>  		@SONAMEFLAG@`basename $@`
>  
> -bin/CP437. at SHLIBEXT@: $(CP437_OBJ:.o=. at PICSUFFIX@)
> +bin/CP437. at SHLIBEXT@: $(CP437_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(CP437_OBJ:.o=. at PICSUFFIX@) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(CP437_OBJ) \
>  		@SONAMEFLAG@`basename $@`
>  
> -bin/macosxfs. at SHLIBEXT@: $(CHARSET_MACOSXFS_OBJ:.o=. at PICSUFFIX@)
> +bin/macosxfs. at SHLIBEXT@: $(CHARSET_MACOSXFS_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(CHARSET_MACOSXFS_OBJ:.o=. at PICSUFFIX@) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(CHARSET_MACOSXFS_OBJ) \
>  		-framework CoreFoundation @SONAMEFLAG@`basename $@`
>  
>  # NOTE, there is no build rule for a dynamic default VFS module because
>  # this one MUST MUST MUST be built statically.
>  
> -bin/audit. at SHLIBEXT@: $(VFS_AUDIT_OBJ:.o=. at PICSUFFIX@)
> +bin/audit. at SHLIBEXT@: $(VFS_AUDIT_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_AUDIT_OBJ:.o=. at PICSUFFIX@) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_AUDIT_OBJ) \
>  		@SONAMEFLAG@`basename $@`
>  
> -bin/extd_audit. at SHLIBEXT@: $(VFS_EXTD_AUDIT_OBJ:.o=. at PICSUFFIX@)
> +bin/extd_audit. at SHLIBEXT@: $(VFS_EXTD_AUDIT_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_EXTD_AUDIT_OBJ:.o=. at PICSUFFIX@) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_EXTD_AUDIT_OBJ) \
>  		@SONAMEFLAG@`basename $@`
>  
> -bin/full_audit. at SHLIBEXT@: $(VFS_FULL_AUDIT_OBJ:.o=. at PICSUFFIX@)
> +bin/full_audit. at SHLIBEXT@: $(VFS_FULL_AUDIT_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_FULL_AUDIT_OBJ:.o=. at PICSUFFIX@) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_FULL_AUDIT_OBJ) \
>  		@SONAMEFLAG@`basename $@`
>  
> -bin/recycle. at SHLIBEXT@: $(VFS_RECYCLE_OBJ:.o=. at PICSUFFIX@)
> +bin/recycle. at SHLIBEXT@: $(VFS_RECYCLE_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_RECYCLE_OBJ:.o=. at PICSUFFIX@) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_RECYCLE_OBJ) \
>  		@SONAMEFLAG@`basename $@`
>  
> -bin/netatalk. at SHLIBEXT@: $(VFS_NETATALK_OBJ:.o=. at PICSUFFIX@)
> +bin/netatalk. at SHLIBEXT@: $(VFS_NETATALK_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_NETATALK_OBJ:.o=. at PICSUFFIX@) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_NETATALK_OBJ) \
>  		@SONAMEFLAG@`basename $@`
>  
> -bin/fake_perms. at SHLIBEXT@: $(VFS_FAKE_PERMS_OBJ:.o=. at PICSUFFIX@)
> +bin/fake_perms. at SHLIBEXT@: $(VFS_FAKE_PERMS_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_FAKE_PERMS_OBJ:.o=. at PICSUFFIX@) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_FAKE_PERMS_OBJ) \
>  		@SONAMEFLAG@`basename $@`
>  
> -bin/default_quota. at SHLIBEXT@: $(VFS_DEFAULT_QUOTA_OBJ:.o=. at PICSUFFIX@)
> +bin/default_quota. at SHLIBEXT@: $(VFS_DEFAULT_QUOTA_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_DEFAULT_QUOTA_OBJ:.o=. at PICSUFFIX@) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_DEFAULT_QUOTA_OBJ) \
>  		@SONAMEFLAG@`basename $@`
>  
> -bin/readonly. at SHLIBEXT@: $(VFS_READONLY_OBJ:.o=. at PICSUFFIX@)
> +bin/readonly. at SHLIBEXT@: $(VFS_READONLY_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_READONLY_OBJ:.o=. at PICSUFFIX@) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_READONLY_OBJ) \
>  		@SONAMEFLAG@`basename $@`
>  
> -bin/shadow_copy. at SHLIBEXT@: $(VFS_SHADOW_COPY_OBJ:.o=. at PICSUFFIX@)
> +bin/shadow_copy. at SHLIBEXT@: $(VFS_SHADOW_COPY_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_SHADOW_COPY_OBJ:.o=. at PICSUFFIX@) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_SHADOW_COPY_OBJ) \
>  		@SONAMEFLAG@`basename $@`
>  
> -bin/cap. at SHLIBEXT@: $(VFS_CAP_OBJ:.o=. at PICSUFFIX@)
> +bin/cap. at SHLIBEXT@: $(VFS_CAP_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_CAP_OBJ:.o=. at PICSUFFIX@) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_CAP_OBJ) \
>  		@SONAMEFLAG@`basename $@`
>  
> -bin/expand_msdfs. at SHLIBEXT@: $(VFS_EXPAND_MSDFS_OBJ:.o=. at PICSUFFIX@)
> +bin/expand_msdfs. at SHLIBEXT@: $(VFS_EXPAND_MSDFS_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_EXPAND_MSDFS_OBJ:.o=. at PICSUFFIX@) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_EXPAND_MSDFS_OBJ) \
>  		@SONAMEFLAG@`basename $@`
>  
>  bin/afsacl. at SHLIBEXT@: $(VFS_AFSACL_OBJ:.o=.po)
> @@ -1486,108 +1452,108 @@
>  	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_AFSACL_OBJ:.o=.po) \
>  		@SONAMEFLAG@`basename $@`
>  
> -bin/posixacl. at SHLIBEXT@: $(VFS_POSIXACL_OBJ:.o=. at PICSUFFIX@)
> +bin/posixacl. at SHLIBEXT@: $(VFS_POSIXACL_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_POSIXACL_OBJ:.o=. at PICSUFFIX@) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_POSIXACL_OBJ) \
>  		@SONAMEFLAG@`basename $@`
>  
> -bin/aixacl. at SHLIBEXT@: $(VFS_AIXACL_OBJ:.o=. at PICSUFFIX@)
> +bin/aixacl. at SHLIBEXT@: $(VFS_AIXACL_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_AIXACL_OBJ:.o=. at PICSUFFIX@) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_AIXACL_OBJ) \
>  		@SONAMEFLAG@`basename $@`
>  
> -bin/aixacl2. at SHLIBEXT@: $(VFS_AIXACL2_OBJ:.o=. at PICSUFFIX@)
> +bin/aixacl2. at SHLIBEXT@: $(VFS_AIXACL2_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_AIXACL2_OBJ:.o=. at PICSUFFIX@) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_AIXACL2_OBJ) \
>  		@SONAMEFLAG@`basename $@`
>  
> -bin/solarisacl. at SHLIBEXT@: $(VFS_SOLARISACL_OBJ:.o=. at PICSUFFIX@)
> +bin/solarisacl. at SHLIBEXT@: $(VFS_SOLARISACL_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_SOLARISACL_OBJ:.o=. at PICSUFFIX@) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_SOLARISACL_OBJ) \
>  		@SONAMEFLAG@`basename $@`
>  
> -bin/irixacl. at SHLIBEXT@: $(VFS_IRIXACL_OBJ:.o=. at PICSUFFIX@)
> +bin/irixacl. at SHLIBEXT@: $(VFS_IRIXACL_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_IRIXACL_OBJ:.o=. at PICSUFFIX@) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_IRIXACL_OBJ) \
>  		@SONAMEFLAG@`basename $@`
>  
> -bin/hpuxacl. at SHLIBEXT@: $(VFS_HPUXACL_OBJ:.o=. at PICSUFFIX@)
> +bin/hpuxacl. at SHLIBEXT@: $(VFS_HPUXACL_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_HPUXACL_OBJ:.o=. at PICSUFFIX@) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_HPUXACL_OBJ) \
>  		@SONAMEFLAG@`basename $@`
>  
> -bin/tru64acl. at SHLIBEXT@: $(VFS_TRU64ACL_OBJ:.o=. at PICSUFFIX@)
> +bin/tru64acl. at SHLIBEXT@: $(VFS_TRU64ACL_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_TRU64ACL_OBJ:.o=. at PICSUFFIX@) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_TRU64ACL_OBJ) \
>  		@SONAMEFLAG@`basename $@`
>  
> -bin/catia. at SHLIBEXT@: $(VFS_CATIA_OBJ:.o=. at PICSUFFIX@)
> +bin/catia. at SHLIBEXT@: $(VFS_CATIA_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_CATIA_OBJ:.o=. at PICSUFFIX@) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_CATIA_OBJ) \
>  		@SONAMEFLAG@`basename $@`
>  
> -bin/cacheprime. at SHLIBEXT@: $(VFS_CACHEPRIME_OBJ:.o=. at PICSUFFIX@)
> +bin/cacheprime. at SHLIBEXT@: $(VFS_CACHEPRIME_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_CACHEPRIME_OBJ:.o=. at PICSUFFIX@) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_CACHEPRIME_OBJ) \
>  		@SONAMEFLAG@`basename $@`
>  
> -bin/prealloc. at SHLIBEXT@: $(VFS_PREALLOC_OBJ:.o=. at PICSUFFIX@)
> +bin/prealloc. at SHLIBEXT@: $(VFS_PREALLOC_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_PREALLOC_OBJ:.o=. at PICSUFFIX@) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_PREALLOC_OBJ) \
>  		@SONAMEFLAG@`basename $@`
>  
> -bin/commit. at SHLIBEXT@: $(VFS_COMMIT_OBJ:.o=. at PICSUFFIX@)
> +bin/commit. at SHLIBEXT@: $(VFS_COMMIT_OBJ)
>  	@echo "Building plugin $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_COMMIT_OBJ:.o=. at PICSUFFIX@) \
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_COMMIT_OBJ) \
>  		@SONAMEFLAG@`basename $@`
>  
>  bin/wbinfo at EXEEXT@: $(WBINFO_OBJ) @BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(LDFLAGS) $(WBINFO_OBJ) $(DYNEXP) $(LIBS) $(LDAP_LIBS) @POPTLIBS@
> +	@$(CC) $(FLAGS) -o $@ $(LDFLAGS) $(WBINFO_OBJ) $(DYNEXP) $(LIBS) $(LDAP_LIBS) @POPTLIBS@
>  
>  bin/ntlm_auth at EXEEXT@: $(NTLM_AUTH_OBJ) $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
>  		@BUILD_POPT@ bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(LDFLAGS) $(DYNEXP) $(NTLM_AUTH_OBJ) \
> +	@$(CC) $(FLAGS) -o $@ $(LDFLAGS) $(DYNEXP) $(NTLM_AUTH_OBJ) \
>  		$(PARAM_OBJ) $(LIB_NONSMBD_OBJ) $(LIBS) \
>  		@POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS) $(NSCD_LIBS)
>  
> -bin/pam_smbpass. at SHLIBEXT@: $(PAM_SMBPASS_PICOOBJ)
> +bin/pam_smbpass. at SHLIBEXT@: $(PAM_SMBPASS_OBJ)
>  	@echo "Linking shared library $@"
> -	@$(SHLD) $(LDSHFLAGS) -o $@ $(PAM_SMBPASS_PICOOBJ) -lpam $(DYNEXP) $(LIBS) $(LDAP_LIBS) $(KRB5LIBS)
> +	@$(SHLD) $(LDSHFLAGS) -o $@ $(PAM_SMBPASS_OBJ) -lpam $(DYNEXP) $(LIBS) $(LDAP_LIBS) $(KRB5LIBS)
>  
>  bin/tdbbackup at EXEEXT@: $(TDBBACKUP_OBJ) bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(LDFLAGS) $(DYNEXP) $(LIBS) $(TDBBACKUP_OBJ) @SOCKET_WRAPPER_OBJS@
> +	@$(CC) $(FLAGS) -o $@ $(LDFLAGS) $(DYNEXP) $(LIBS) $(TDBBACKUP_OBJ) @SOCKET_WRAPPER_OBJS@
>  
>  bin/tdbtool at EXEEXT@: $(TDBTOOL_OBJ) bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(LDFLAGS) $(DYNEXP) $(LIBS) $(TDBTOOL_OBJ) @SOCKET_WRAPPER_OBJS@
> +	@$(CC) $(FLAGS) -o $@ $(LDFLAGS) $(DYNEXP) $(LIBS) $(TDBTOOL_OBJ) @SOCKET_WRAPPER_OBJS@
>  
>  bin/tdbdump at EXEEXT@: $(TDBDUMP_OBJ) bin/.dummy
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(LDFLAGS) $(DYNEXP) $(LIBS) $(TDBDUMP_OBJ) @SOCKET_WRAPPER_OBJS@
> +	@$(CC) $(FLAGS) -o $@ $(LDFLAGS) $(DYNEXP) $(LIBS) $(TDBDUMP_OBJ) @SOCKET_WRAPPER_OBJS@
>  
>  bin/t_strcmp at EXEEXT@: bin/libbigballofmud. at SHLIBEXT@ torture/t_strcmp.o
> -	$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(DYNEXP) $(LIBS) torture/t_strcmp.o -L ./bin -lbigballofmud
> +	$(CC) $(FLAGS) -o $@ $(DYNEXP) $(LIBS) torture/t_strcmp.o -L ./bin -lbigballofmud
>  
>  bin/t_strstr at EXEEXT@: bin/libbigballofmud. at SHLIBEXT@ torture/t_strstr.o
> -	$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(DYNEXP) $(LIBS) torture/t_strstr.o -L ./bin -lbigballofmud
> +	$(CC) $(FLAGS) -o $@ $(DYNEXP) $(LIBS) torture/t_strstr.o -L ./bin -lbigballofmud
>  
>  bin/t_strappend at EXEEXT@: bin/libbigballofmud. at SHLIBEXT@ torture/t_strappend.o
> -	$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(DYNEXP) $(LIBS) torture/t_strappend.o -L ./bin -lbigballofmud
> +	$(CC) $(FLAGS) -o $@ $(DYNEXP) $(LIBS) torture/t_strappend.o -L ./bin -lbigballofmud
>  
>  bin/t_stringoverflow at EXEEXT@: bin/libbigballofmud. at SHLIBEXT@ torture/t_stringoverflow.o
> -	$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(DYNEXP) torture/t_stringoverflow.o -L./bin -lbigballofmud
> +	$(CC) $(FLAGS) -o $@ $(DYNEXP) torture/t_stringoverflow.o -L./bin -lbigballofmud
>  
>  bin/t_doschar at EXEEXT@: bin/libbigballofmud. at SHLIBEXT@ torture/t_doschar.o
> -	$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(DYNEXP) $(LIBS) torture/t_doschar.o -L ./bin -lbigballofmud
> +	$(CC) $(FLAGS) -o $@ $(DYNEXP) $(LIBS) torture/t_doschar.o -L ./bin -lbigballofmud
>  bin/t_push_ucs2 at EXEEXT@: bin/libbigballofmud. at SHLIBEXT@ torture/t_push_ucs2.o
> -	$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(DYNEXP) $(LIBS) torture/t_push_ucs2.o -L ./bin -lbigballofmud
> +	$(CC) $(FLAGS) -o $@ $(DYNEXP) $(LIBS) torture/t_push_ucs2.o -L ./bin -lbigballofmud
>  
>  bin/timelimit at EXEEXT@: script/tests/timelimit.o
>  	@echo Linking $@
> -	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(DYNEXP) script/tests/timelimit.o
> +	@$(CC) $(FLAGS) -o $@ $(DYNEXP) script/tests/timelimit.o
>  
>  install: installservers installbin @INSTALL_CIFSMOUNT@ installman installscripts installdat installswat installmodules @INSTALL_LIBSMBCLIENT@ @INSTALL_LIBMSRPC@ @INSTALL_PAM_MODULES@ @INSTALL_LIBSMBSHAREMODES@ 
>  
> @@ -1676,28 +1642,26 @@
>  
>  # Python extensions
>  
> -PYTHON_OBJS = $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) $(LIBSMB_OBJ) $(RPC_PARSE_OBJ) \
> +PYTHON_OBJ = $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) $(LIBSMB_OBJ) $(RPC_PARSE_OBJ) \
>  	$(LIBMSRPC_OBJ) $(LIBMSRPC_GEN_OBJ) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
>  	$(SECRETS_OBJ) $(KRBCLIENT_OBJ) $(SMBLDAP_OBJ) $(LDB_OBJ)
>  
> -PYTHON_PICOBJS = $(PYTHON_OBJS:.o=. at PICSUFFIX@)
> -
> -python_ext: $(PYTHON_PICOBJS)
> +python_ext: $(PYTHON_OBJ)
>  	@if test -z "$(PYTHON)"; then \
>  		echo Use the option --with-python to configure python; \
>  		exit 1; \
>  	fi
> -	PYTHON_OBJS="$(PYTHON_PICOBJS)" \
> +	PYTHON_OBJS="$(PYTHON_OBJ)" \
>  	PYTHON_CFLAGS="$(CFLAGS) $(CPPFLAGS) $(FLAGS)" \
>  	LIBS="$(LDFLAGS) $(LIBS) $(PASSDB_LIBS) $(IDMAP_LIBS) $(KRB5LIBS) $(LDAP_LIBS)" \
>  		$(PYTHON) python/setup.py build
>  
> -python_install: $(PYTHON_PICOBJS)
> +python_install: $(PYTHON_OBJ)
>  	@if test -z "$(PYTHON)"; then \
>  		echo Use the option --with-python to configure python; \
>  		exit 1; \
>  	fi
> -	PYTHON_OBJS="$(PYTHON_PICOBJS)" \
> +	PYTHON_OBJS="$(PYTHON_OBJ)" \
>  	PYTHON_CFLAGS="$(CFLAGS) $(CPPFLAGS)" \
>  	LIBS="$(LDFLAGS) $(LIBS)" \
>  		$(PYTHON) python/setup.py install --root=$(DESTDIR)
> @@ -1789,16 +1753,15 @@
>  	done
>  
>  # Toplevel clean files
> -TOPFILES=dynconfig.o dynconfig. at PICSUFFIX@
> +TOPFILES=dynconfig.o
>  
>  clean: delheaders python_clean
>  	-rm -f core */*~ *~ */*.o */*/*.o */*/*/*.o \
> -		*/*. at PICSUFFIX@ */*/*. at PICSUFFIX@ */*/*/*. at PICSUFFIX@ \
>  		*/*. at SHLIBEXT@ */*/*. at SHLIBEXT@ */*/*/*. at SHLIBEXT@ \
>  		$(TOPFILES) $(BIN_PROGS) $(SBIN_PROGS) $(ROOT_SBIN_PROGS) \
>  		$(MODULES) $(TORTURE_PROGS) $(LIBSMBCLIENT) \
>  		$(LIBSMBSHAREMODES) $(EVERYTHING_PROGS) $(LIBMSRPC) \
> -		.headers.stamp */src/*.o */src/*. at PICSUFFIX@
> +		.headers.stamp */src/*.o
>  	-rm -rf t_dir
>  
>  # Making this target will just make sure that the prototype files
> === configure.in
> ==================================================================
> --- configure.in	(revision 29702)
> +++ configure.in	(local)
> @@ -262,9 +262,7 @@
>  AC_SUBST(NSSSONAMEVERSIONSUFFIX)
>  AC_SUBST(SHLD)
>  AC_SUBST(HOST_OS)
> -AC_SUBST(PICFLAGS)
> -AC_SUBST(PICSUFFIX)
> -AC_SUBST(libc_cv_fpie)
> +AC_SUBST(PICFLAG)
>  AC_SUBST(PIE_CFLAGS)
>  AC_SUBST(PIE_LDFLAGS)
>  AC_SUBST(SHLIBEXT)
> @@ -333,32 +331,6 @@
>  
>  AC_LIBREPLACE_CC_CHECKS
>  
> -# Set defaults
> -PIE_CFLAGS=""
> -PIE_LDFLAGS=""
> -AC_ARG_ENABLE(pie, [  --enable-pie            Turn on pie support if available (default=yes)])
> -
> -if test "x$enable_pie" != xno
> -then
> -	AC_CACHE_CHECK(for -pie and -fPIE, samba_cv_fpie, [dnl
> -		cat > conftest.c <<EOF
> -int foo;
> -main () { return 0;}
> -EOF
> -		if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -pie -fPIE -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD])
> -		then
> -			samba_cv_fpie=yes
> -		else
> -			samba_cv_fpie=no
> -		fi
> -		rm -f conftest*])
> -fi
> -if test x"${samba_cv_fpie}" = x"yes"
> -then
> -	PIE_CFLAGS="-fPIE"
> -	PIE_LDFLAGS="-pie"
> -fi
> -
>  m4_include(lib/socket_wrapper/config.m4)
>  
>  #################################################
> @@ -1629,6 +1601,32 @@
>      ;;
>  esac
>  
> +# Set defaults
> +PIE_CFLAGS=""
> +PIE_LDFLAGS=""
> +AC_ARG_ENABLE(pie, [  --enable-pie            Turn on pie support if available (default=yes)])
> +
> +if test "x$enable_pie" != xno
> +then
> +	AC_CACHE_CHECK(for -pie and -fPIE, samba_cv_fpie, [dnl
> +		cat > conftest.c <<EOF
> +int foo;
> +main () { return 0;}
> +EOF
> +		if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -pie -fPIE -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD])
> +		then
> +			samba_cv_fpie=yes
> +		else
> +			samba_cv_fpie=no
> +		fi
> +		rm -f conftest*])
> +fi
> +if test x"${samba_cv_fpie}" = x"yes"
> +then
> +	PIE_CFLAGS="-fPIE"
> +	PIE_LDFLAGS="-pie"
> +fi
> +
>  # Assume non-shared by default and override below
>  BLDSHARED="false"
>  
> @@ -1638,8 +1636,7 @@
>  SONAMEFLAG="#"
>  NSSSONAMEVERSIONSUFFIX=""
>  SHLD="\${CC} \${CFLAGS}"
> -PICFLAGS=""
> -PICSUFFIX="po"
> +PICFLAG="${PIE_CFLAGS}"
>  SHLIBEXT="so"
>  
>  if test "$enable_shared" = "yes"; then
> @@ -1659,7 +1656,7 @@
>  				LDSHFLAGS="-shared -Wl,-Bsymbolic" 
>  			fi
>  			DYNEXP="-Wl,--export-dynamic"
> -			PICFLAGS="-fPIC"
> +			PICFLAG="-fPIC"
>  			SONAMEFLAG="-Wl,-soname="
>  			NSSSONAMEVERSIONSUFFIX=".2"
>  			AC_DEFINE(STAT_ST_BLOCKSIZE,512)
> @@ -1669,18 +1666,17 @@
>  			LDSHFLAGS="-G"
>  			SONAMEFLAG="-h "
>  			if test "${GCC}" = "yes"; then
> -				PICFLAGS="-fPIC"
> +				PICFLAG="-fPIC"
>  				SONAMEFLAG="-Wl,-soname="
>  				NSSSONAMEVERSIONSUFFIX=".1"
>  				if test "${ac_cv_prog_gnu_ld}" = "yes"; then
>  					DYNEXP="-Wl,-E"
>  				fi
>  			else
> -				PICFLAGS="-KPIC"
> +				PICFLAG="-KPIC"
>  				## ${CFLAGS} added for building 64-bit shared 
>  				## libs using Sun's Compiler
>  				LDSHFLAGS="-G \${CFLAGS}"
> -				PICSUFFIX="po.o"
>  			fi
>  			AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
>  			AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
> @@ -1689,7 +1685,7 @@
>  			BLDSHARED="true"
>  			LDSHFLAGS="-G"
>  			SONAMEFLAG="-Wl,-h,"
> -			PICFLAGS="-KPIC"   # Is this correct for SunOS
> +			PICFLAG="-KPIC"   # Is this correct for SunOS
>  			AC_DEFINE(STAT_ST_BLOCKSIZE,512)
>  			AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
>  			;;
> @@ -1698,7 +1694,7 @@
>  			LDSHFLAGS="-shared"
>  			DYNEXP="-Wl,--export-dynamic"
>  			SONAMEFLAG="-Wl,-soname,"
> -			PICFLAGS="-fPIC -DPIC"
> +			PICFLAG="-fPIC -DPIC"
>  			AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
>  			AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
>  			;;
> @@ -1706,7 +1702,7 @@
>  			LDSHFLAGS="-shared"
>  			DYNEXP="-Wl,-Bdynamic"
>  			SONAMEFLAG="-Wl,-soname,"
> -			PICFLAGS="-fPIC"
> +			PICFLAG="-fPIC"
>  			AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
>  			AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
>  			;;
> @@ -1720,9 +1716,9 @@
>  			SONAMEFLAG="-soname "
>  			SHLD="\${LD}"
>  			if test "${GCC}" = "yes"; then
> -				PICFLAGS="-fPIC"
> +				PICFLAG="-fPIC"
>  			else 
> -				PICFLAGS="-KPIC"
> +				PICFLAG="-KPIC"
>  			fi
>  			AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
>  			;;
> @@ -1730,10 +1726,9 @@
>  			BLDSHARED="true"
>  			LDSHFLAGS="-Wl,-G,-bexpall"
>  			DYNEXP="-Wl,-brtl,-bexpall,-bbigtoc"
> -			PICFLAGS="-O2"
> +			PICFLAG="-O2"
>  			# as AIX code is always position independent...
>  			# .po will just create compile warnings, use po.o:
> -			PICSUFFIX="po.o"
>  			if test "${GCC}" != "yes"; then
>  				## for funky AIX compiler using strncpy()
>  				CFLAGS="$CFLAGS -D_LINUX_SOURCE_COMPAT -qmaxmem=32000"
> @@ -1750,9 +1745,9 @@
>  				SHLD="cc"
>  				LDSHFLAGS="-b -Wl,-B,symbolic,-b,-z"
>  				SONAMEFLAG="-Wl,+h "
> -				PICFLAGS="+z"
> +				PICFLAG="+z"
>  			elif test "${GCC}" = "yes"; then
> -				PICFLAGS="-fPIC"
> +				PICFLAG="-fPIC"
>  			fi
>  			if test "$host_cpu" = "ia64"; then
>  				SHLIBEXT="so"
> @@ -1771,7 +1766,7 @@
>  			BLDSHARED="true"
>  			LDSHFLAGS="-shared"
>  			SONAMEFLAG="-Wl,-soname,"
> -			PICFLAGS="-fPIC"
> +			PICFLAG="-fPIC"
>  			AC_DEFINE(STAT_ST_BLOCKSIZE,512)
>  			AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
>  			;;
> @@ -1782,7 +1777,7 @@
>  			BLDSHARED="true"
>  			LDSHFLAGS="-shared"
>  			SONAMEFLAG="-Wl,-soname,"
> -			PICFLAGS="-KPIC"
> +			PICFLAG="-KPIC"
>  			AC_DEFINE(STAT_ST_BLOCKSIZE,512)
>  			;;
>  		*next2*) AC_DEFINE(NEXT2,1,[Whether the host os is NeXT v2])
> @@ -1832,7 +1827,7 @@
>    AC_MSG_CHECKING([linker flags for shared libraries])
>    AC_MSG_RESULT([$LDSHFLAGS])
>    AC_MSG_CHECKING([compiler flags for position-independent code])
> -  AC_MSG_RESULT([$PICFLAGS])
> +  AC_MSG_RESULT([$PICFLAG])
>  fi
>  
>  #######################################################
> @@ -1844,11 +1839,11 @@
>     ac_cv_shlib_works=no
>     # The $SHLD and $LDSHFLAGS variables may contain references to other
>     # variables so they need to be eval'ed.
> -   $CC $CPPFLAGS $CFLAGS $PICFLAGS -c -o \
> -	shlib.$PICSUFFIX ${srcdir-.}/tests/shlib.c && \
> +   $CC $CPPFLAGS $CFLAGS $PICFLAG -c -o \
> +	shlib.o ${srcdir-.}/tests/shlib.c && \
>     `eval echo $SHLD` `eval echo $LDSHFLAGS` -o "shlib.$SHLIBEXT" \
> -        shlib.$PICSUFFIX && ac_cv_shlib_works=yes
> -   rm -f "shlib.$SHLIBEXT" shlib.$PICSUFFIX
> +        shlib.o && ac_cv_shlib_works=yes
> +   rm -f "shlib.$SHLIBEXT" shlib.o
>  ])
>  if test $ac_cv_shlib_works = no; then
>     BLDSHARED=false
> @@ -3953,7 +3948,7 @@
>  
>         # Conditions under which pam_smbpass should not be built.
>  
> -       if test x"$PICFLAGS" = x; then
> +       if test x"$PICFLAG" = x; then
>            AC_MSG_ERROR([No support for PIC code])
>         elif test x"$ac_cv_header_security_pam_appl_h" = x"no"; then
>  	  AC_MSG_ERROR([No security/pam_appl.h found])

-- 
David Collier-Brown,         | Always do right. This will gratify
System Programmer and Author | some people and astonish the rest
davecb at spamcop.net           |                      -- Mark Twain
(416) 223-5943


More information about the samba-technical mailing list