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.
# 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
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) $< | \
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);