Patchwork [meta-networking,13/13] ebtables: Fix segfault by linking with no-as-needed

login
register
mail settings
Submitter Khem Raj
Date Jan. 4, 2013, 3:59 a.m.
Message ID <1357271974-3317-12-git-send-email-raj.khem@gmail.com>
Download mbox | patch
Permalink /patch/41975/
State Superseded, archived
Headers show

Comments

Khem Raj - Jan. 4, 2013, 3:59 a.m.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../ebtables/ebtables-2.0.10-4/no-as-needed.patch  |   25 ++++++++++++++++++++
 .../recipes-support/ebtables/ebtables_2.0.10-4.bb  |    1 +
 2 files changed, 26 insertions(+)
 create mode 100644 meta-networking/recipes-support/ebtables/ebtables-2.0.10-4/no-as-needed.patch

Patch

diff --git a/meta-networking/recipes-support/ebtables/ebtables-2.0.10-4/no-as-needed.patch b/meta-networking/recipes-support/ebtables/ebtables-2.0.10-4/no-as-needed.patch
new file mode 100644
index 0000000..336119d
--- /dev/null
+++ b/meta-networking/recipes-support/ebtables/ebtables-2.0.10-4/no-as-needed.patch
@@ -0,0 +1,25 @@ 
+link ebtables with --no-as-needed and adjust the link order to fix runtime crash
+
+Program terminated with signal 11, Segmentation fault.
+#0  0x00007ffaa837fb53 in ebt_initialize_entry () from /lib64/ebtables/libebtc.so
+(gdb) bt
+#0  0x00007ffaa837fb53 in ebt_initialize_entry () from /lib64/ebtables/libebtc.so
+#1  0x00007ffaa83824dc in do_command () from /lib64/ebtables/libebtc.so
+#2  0x000000000040065c in ?? ()
+#3  0x00007ffaa7fed755 in __libc_start_main () from /lib64/libc.so.6
+#4  0x0000000000400691 in ?? ()
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Index: ebtables-v2.0.10-4/Makefile
+===================================================================
+--- ebtables-v2.0.10-4.orig/Makefile	2011-12-15 12:02:47.000000000 -0800
++++ ebtables-v2.0.10-4/Makefile	2012-12-17 22:09:45.065973753 -0800
+@@ -90,7 +90,7 @@
+ 	$(CC) -shared $(LDFLAGS) -Wl,-soname,libebtc.so -o libebtc.so -lc $(OBJECTS2)
+ 
+ ebtables: $(OBJECTS) ebtables-standalone.o libebtc.so
+-	$(CC) $(CFLAGS) $(CFLAGS_SH_LIB) $(LDFLAGS) -o $@ ebtables-standalone.o -I$(KERNEL_INCLUDES) -L. -Lextensions -lebtc $(EXT_LIBSI) \
++	$(CC) $(CFLAGS) $(CFLAGS_SH_LIB) $(LDFLAGS) -o $@ ebtables-standalone.o -I$(KERNEL_INCLUDES) -L. -Lextensions -Wl,--no-as-needed $(EXT_LIBSI) -lebtc \
+ 	-Wl,-rpath,$(LIBDIR)
+ 
+ ebtablesu: ebtablesu.c
diff --git a/meta-networking/recipes-support/ebtables/ebtables_2.0.10-4.bb b/meta-networking/recipes-support/ebtables/ebtables_2.0.10-4.bb
index 9be2494..eb7fa0d 100644
--- a/meta-networking/recipes-support/ebtables/ebtables_2.0.10-4.bb
+++ b/meta-networking/recipes-support/ebtables/ebtables_2.0.10-4.bb
@@ -10,6 +10,7 @@  TARGET_CC_ARCH += "${LDFLAGS}"
 SRC_URI = " \
 	${SOURCEFORGE_MIRROR}/ebtables/ebtables-v${PV}.tar.gz \
 	file://01debian_defaultconfig.patch \
+	file://no-as-needed.patch \
 	file://ebtables.init \
 	"
 SRC_URI[md5sum] = "506742a3d44b9925955425a659c1a8d0"