Use gcc to build shared objects
PATCH 1/1 Use gcc to build shared objects
As suggested by Dmitry Levin and included in Fedora Core releases, use gcc instead of ld to link shared objects. Fedora rpm notes refer to this fixing a plugin problem, but does not offer specifics. But in any event, 'gcc -dumpspecs' does show gcc will pass a number of parameters which in theory it thinks are better.
Compile tested both with and without NO_SHARED_LIBS.
Closes bug #454.
Phil
include/iptables_common.h +2 -0
@@ -33,8 +33,10 @@extern const char *program_name, *program_version;extern char *lib_dir; +#define _init __attribute__((constructor)) my_init#ifdef NO_SHARED_LIBS # ifdef _INIT +# undef _init# define _init _INIT# endif extern void init_extensions (void );
Makefile +1 -1
@@ -67,7 +67,7 @@ # The kernel is 64-bit, even though userspace is 32. CFLAGS+=-DIPT_MIN_ALIGN=8 -DKERNEL_64_USERSPACE_32 else - EXT_LDFLAGS=-m elf64_sparc + EXT_LDFLAGS+=-Wl,-m,elf64_sparc endif endif
Rules.make +1 -1
@@ -31,7 +31,7 @@ sed -e 's@^.*\.o:@$*.d $*_sh.o:@' > $@ $(SHARED_LIBS): %.so : %_sh.o - $(LD) -shared $(EXT_LDFLAGS) -o $@ $< + $(CC) -shared $(EXT_LDFLAGS) -o $@ $< $(SHARED_SE_LIBS:%.so=%.d): %.d: %.c @-$(CC) -M -MG $(CFLAGS) $< | \
Patrick McHardy
AppliedQuoted 9 lines · Phil Oester
As suggested by Dmitry Levin and included in Fedora Core releases, use gcc instead of ld to link shared objects. Fedora rpm notes refer to this fixing a plugin problem, but does not offer specifics. But in any event, 'gcc -dumpspecs' does show gcc will pass a number of parameters which in theory it thinks are better.
Compile tested both with and without
NO_SHARED_LIBS.Closes bug #454.
Applied, thanks.