1 --- a/extensions/Makefile
2 +++ b/extensions/Makefile
3 @@ -11,13 +11,13 @@ EXT_LIBSI+=$(foreach T,$(EXT_FUNC), -leb
4 EXT_LIBSI+=$(foreach T,$(EXT_TABLES), -lebtable_$(T))
6 extensions/ebt_%.so: extensions/ebt_%.o
7 - $(CC) $(LDFLAGS) -shared -o $@ -lc $< -nostartfiles
8 + $(CC) $(LDFLAGS) -shared -o $@ -lc $<
10 extensions/libebt_%.so: extensions/ebt_%.so
13 extensions/ebtable_%.so: extensions/ebtable_%.o
14 - $(CC) $(LDFLAGS) -shared -o $@ -lc $< -nostartfiles
15 + $(CC) $(LDFLAGS) -shared -o $@ -lc $<
17 extensions/libebtable_%.so: extensions/ebtable_%.so
19 --- a/extensions/ebt_802_3.c
20 +++ b/extensions/ebt_802_3.c
21 @@ -141,7 +141,7 @@ static struct ebt_u_match _802_3_match =
26 +__attribute__((constructor)) static void extension_init(void)
28 ebt_register_match(&_802_3_match);
30 --- a/extensions/ebt_among.c
31 +++ b/extensions/ebt_among.c
32 @@ -490,7 +490,7 @@ static struct ebt_u_match among_match =
37 +__attribute__((constructor)) static void extension_init(void)
39 ebt_register_match(&among_match);
41 --- a/extensions/ebt_arp.c
42 +++ b/extensions/ebt_arp.c
43 @@ -362,7 +362,7 @@ static struct ebt_u_match arp_match =
48 +__attribute__((constructor)) static void extension_init(void)
50 ebt_register_match(&arp_match);
52 --- a/extensions/ebt_arpreply.c
53 +++ b/extensions/ebt_arpreply.c
54 @@ -132,7 +132,7 @@ static struct ebt_u_target arpreply_targ
59 +__attribute__((constructor)) static void extension_init(void)
61 ebt_register_target(&arpreply_target);
63 --- a/extensions/ebt_ip.c
64 +++ b/extensions/ebt_ip.c
65 @@ -338,7 +338,7 @@ static struct ebt_u_match ip_match =
70 +__attribute__((constructor)) static void extension_init(void)
72 ebt_register_match(&ip_match);
74 --- a/extensions/ebt_ip6.c
75 +++ b/extensions/ebt_ip6.c
76 @@ -556,7 +556,7 @@ static struct ebt_u_match ip6_match =
81 +__attribute__((constructor)) static void extension_init(void)
83 ebt_register_match(&ip6_match);
85 --- a/extensions/ebt_limit.c
86 +++ b/extensions/ebt_limit.c
87 @@ -212,7 +212,7 @@ static struct ebt_u_match limit_match =
92 +__attribute__((constructor)) static void extension_init(void)
94 ebt_register_match(&limit_match);
96 --- a/extensions/ebt_log.c
97 +++ b/extensions/ebt_log.c
98 @@ -217,7 +217,7 @@ static struct ebt_u_watcher log_watcher
103 +__attribute__((constructor)) static void extension_init(void)
105 ebt_register_watcher(&log_watcher);
107 --- a/extensions/ebt_mark.c
108 +++ b/extensions/ebt_mark.c
109 @@ -172,7 +172,7 @@ static struct ebt_u_target mark_target =
114 +__attribute__((constructor)) static void extension_init(void)
116 ebt_register_target(&mark_target);
118 --- a/extensions/ebt_mark_m.c
119 +++ b/extensions/ebt_mark_m.c
120 @@ -121,7 +121,7 @@ static struct ebt_u_match mark_match =
125 +__attribute__((constructor)) static void extension_init(void)
127 ebt_register_match(&mark_match);
129 --- a/extensions/ebt_nat.c
130 +++ b/extensions/ebt_nat.c
131 @@ -230,7 +230,7 @@ static struct ebt_u_target dnat_target =
136 +__attribute__((constructor)) static void extension_init(void)
138 ebt_register_target(&snat_target);
139 ebt_register_target(&dnat_target);
140 --- a/extensions/ebt_nflog.c
141 +++ b/extensions/ebt_nflog.c
142 @@ -166,7 +166,7 @@ static struct ebt_u_watcher nflog_watche
143 .extra_ops = nflog_opts,
147 +__attribute__((constructor)) static void extension_init(void)
149 ebt_register_watcher(&nflog_watcher);
151 --- a/extensions/ebt_pkttype.c
152 +++ b/extensions/ebt_pkttype.c
153 @@ -125,7 +125,7 @@ static struct ebt_u_match pkttype_match
158 +__attribute__((constructor)) static void extension_init(void)
160 ebt_register_match(&pkttype_match);
162 --- a/extensions/ebt_redirect.c
163 +++ b/extensions/ebt_redirect.c
164 @@ -108,7 +108,7 @@ static struct ebt_u_target redirect_targ
169 +__attribute__((constructor)) static void extension_init(void)
171 ebt_register_target(&redirect_target);
173 --- a/extensions/ebt_standard.c
174 +++ b/extensions/ebt_standard.c
175 @@ -84,7 +84,7 @@ static struct ebt_u_target standard =
180 +__attribute__((constructor)) static void extension_init(void)
182 ebt_register_target(&standard);
184 --- a/extensions/ebt_stp.c
185 +++ b/extensions/ebt_stp.c
186 @@ -337,7 +337,7 @@ static struct ebt_u_match stp_match =
191 +__attribute__((constructor)) static void extension_init(void)
193 ebt_register_match(&stp_match);
195 --- a/extensions/ebt_ulog.c
196 +++ b/extensions/ebt_ulog.c
197 @@ -180,7 +180,7 @@ static struct ebt_u_watcher ulog_watcher
202 +__attribute__((constructor)) static void extension_init(void)
204 ebt_register_watcher(&ulog_watcher);
206 --- a/extensions/ebt_vlan.c
207 +++ b/extensions/ebt_vlan.c
208 @@ -181,7 +181,7 @@ static struct ebt_u_match vlan_match = {
213 +__attribute__((constructor)) static void extension_init(void)
215 ebt_register_match(&vlan_match);
217 --- a/extensions/ebtable_broute.c
218 +++ b/extensions/ebtable_broute.c
219 @@ -23,7 +23,7 @@ ebt_u_table table =
224 +__attribute__((constructor)) static void extension_init(void)
226 ebt_register_table(&table);
228 --- a/extensions/ebtable_filter.c
229 +++ b/extensions/ebtable_filter.c
230 @@ -29,7 +29,7 @@ static struct ebt_u_table table =
235 +__attribute__((constructor)) static void extension_init(void)
237 ebt_register_table(&table);
239 --- a/extensions/ebtable_nat.c
240 +++ b/extensions/ebtable_nat.c
241 @@ -30,7 +30,7 @@ ebt_u_table table =
246 +__attribute__((constructor)) static void extension_init(void)
248 ebt_register_table(&table);