diff options
Diffstat (limited to 'package/libpcap/patches/100-debian_shared_lib.patch')
-rw-r--r-- | package/libpcap/patches/100-debian_shared_lib.patch | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/package/libpcap/patches/100-debian_shared_lib.patch b/package/libpcap/patches/100-debian_shared_lib.patch new file mode 100644 index 0000000000..76d3729ef9 --- /dev/null +++ b/package/libpcap/patches/100-debian_shared_lib.patch @@ -0,0 +1,157 @@ +Debian-specific modifications to the upstream Makefile.in to +build a shared library. +--- + Makefile.in | 45 ++++++++++++++++++++++++++++++++++++++++++--- + configure | 2 +- + configure.in | 2 +- + 3 files changed, 44 insertions(+), 5 deletions(-) + +--- a/Makefile.in ++++ b/Makefile.in +@@ -40,6 +40,14 @@ mandir = @mandir@ + srcdir = @srcdir@ + VPATH = @srcdir@ + ++# some defines for shared library compilation ++MAJ=1.0 ++LIBVERSION=$(MAJ).0 ++LIBNAME=pcap ++LIBRARY=lib$(LIBNAME).a ++SOLIBRARY=lib$(LIBNAME).so ++SHAREDLIB=$(SOLIBRARY).$(LIBVERSION) ++ + # + # You shouldn't need to edit anything below. + # +@@ -56,6 +64,7 @@ PROG=libpcap + + # Standard CFLAGS + CFLAGS = $(CCOPT) $(INCLS) $(DEFS) ++CFLAGS_SHARED = -shared -Wl,-soname,$(SOLIBRARY).$(MAJ) + + INSTALL = @INSTALL@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ +@@ -75,7 +84,11 @@ YACC = @V_YACC@ + # problem if you don't own the file but can write to the directory. + .c.o: + @rm -f $@ +- $(CC) $(CFLAGS) -c $(srcdir)/$*.c ++ $(CC) $(CFLAGS) -c -o $@ $(srcdir)/$*.c ++ ++%_pic.o: %.c ++ @rm -f $@ ++ $(CC) -fPIC $(CFLAGS) -c -o $@ $(srcdir)/$*.c + + PSRC = pcap-@V_PCAP@.c @USB_SRC@ @BT_SRC@ + FSRC = fad-@V_FINDALLDEVS@.c +@@ -90,6 +103,7 @@ SRC = $(PSRC) $(FSRC) $(CSRC) $(SSRC) $( + # We would like to say "OBJ = $(SRC:.c=.o)" but Ultrix's make cannot + # hack the extra indirection + OBJ = $(PSRC:.c=.o) $(FSRC:.c=.o) $(CSRC:.c=.o) $(SSRC:.c=.o) $(GENSRC:.c=.o) $(LIBOBJS) ++OBJ_PIC = $(PSRC:.c=_pic.o) $(FSRC:.c=_pic.o) $(CSRC:.c=_pic.o) $(SSRC:.c=_pic.o) $(GENSRC:.c=_pic.o) + HDR = \ + acconfig.h \ + arcnet.h \ +@@ -122,7 +136,8 @@ TAGHDR = \ + TAGFILES = \ + $(SRC) $(HDR) $(TAGHDR) + +-CLEANFILES = $(OBJ) libpcap.a $(GENSRC) $(GENHDR) lex.yy.c ++CLEANFILES = $(OBJ) libpcap.a $(GENSRC) $(GENHDR) lex.yy.c \ ++ $(OBJ_PIC) libpcap.so* + + MAN1 = pcap-config.1 + +@@ -311,7 +326,7 @@ EXTRA_DIST = \ + Win32/Src/inet_net.c \ + Win32/Src/inet_pton.c + +-all: libpcap.a pcap-config ++all: libpcap.a pcap-config $(SHAREDLIB) + + libpcap.a: $(OBJ) + @rm -f $@ +@@ -344,6 +359,13 @@ libpcap.dylib: $(OBJ) + -compatibility_version 1 \ + -current_version `sed 's/[^0-9.].*$$//' $(srcdir)/VERSION` + ++$(SHAREDLIB): $(OBJ_PIC) ++ -@rm -f $@ ++ -@rm -f $(SOLIBRARY) $(SOLIBRARY).$(MAJ) ++ $(CC) $(CFLAGS_SHARED) -o $(SHAREDLIB) $(OBJ_PIC) -lc ++ ln -s $(SHAREDLIB) $(SOLIBRARY).$(MAJ) ++ ln -s $(SOLIBRARY).$(MAJ) $(SOLIBRARY) ++ + scanner.c: $(srcdir)/scanner.l + @rm -f $@ + ./runlex.sh $(LEX) -o$@ $< +@@ -351,6 +373,9 @@ scanner.c: $(srcdir)/scanner.l + scanner.o: scanner.c tokdefs.h + $(CC) $(CFLAGS) -c scanner.c + ++scanner_pic.o: scanner.c tokdefs.h ++ $(CC) -fPIC $(CFLAGS) -o $@ -c scanner.c ++ + pcap.o: version.h + + tokdefs.h: grammar.c +@@ -364,9 +389,17 @@ grammar.o: grammar.c + @rm -f $@ + $(CC) $(CFLAGS) -Dyylval=pcap_lval -c grammar.c + ++grammar_pic.o: grammar.c ++ @rm -f $@ ++ $(CC) -fPIC $(CFLAGS) -Dyylval=pcap_lval -o $@ -c grammar.c ++ + version.o: version.c + $(CC) $(CFLAGS) -c version.c + ++version_pic.o: version.c ++ $(CC) -fPIC $(CFLAGS) -c version.c -o $@ ++ ++ + snprintf.o: $(srcdir)/missing/snprintf.c + $(CC) $(CFLAGS) -o $@ -c $(srcdir)/missing/snprintf.c + +@@ -392,6 +425,9 @@ bpf_filter.c: $(srcdir)/bpf/net/bpf_filt + bpf_filter.o: bpf_filter.c + $(CC) $(CFLAGS) -c bpf_filter.c + ++bpf_filter_pic.o: bpf_filter.c ++ $(CC) -fPIC $(CFLAGS) -c bpf_filter.c -o $@ ++ + # + # Generate the pcap-config script. + # +@@ -418,6 +454,9 @@ install: libpcap.a pcap-config + (mkdir -p $(DESTDIR)$(libdir); chmod 755 $(DESTDIR)$(libdir)) + $(INSTALL_DATA) libpcap.a $(DESTDIR)$(libdir)/libpcap.a + $(RANLIB) $(DESTDIR)$(libdir)/libpcap.a ++ $(INSTALL_DATA) $(SHAREDLIB) $(DESTDIR)$(libdir)/ ++ ln -sf $(SHAREDLIB) $(DESTDIR)$(libdir)/$(SOLIBRARY).$(MAJ) ++ ln -sf $(SOLIBRARY).$(MAJ) $(DESTDIR)$(libdir)/$(SOLIBRARY) + [ -d $(DESTDIR)$(includedir) ] || \ + (mkdir -p $(DESTDIR)$(includedir); chmod 755 $(DESTDIR)$(includedir)) + [ -d $(DESTDIR)$(includedir)/pcap ] || \ +--- a/configure ++++ b/configure +@@ -8658,7 +8658,7 @@ irix*) + ;; + + linux*) +- V_CCOPT="$V_CCOPT -fPIC" ++ V_CCOPT="$V_CCOPT" + ;; + + osf*) +--- a/configure.in ++++ b/configure.in +@@ -943,7 +943,7 @@ irix*) + ;; + + linux*) +- V_CCOPT="$V_CCOPT -fPIC" ++ V_CCOPT="$V_CCOPT" + ;; + + osf*) |