From: Lonnie A. <li...@lo...> - 2015-11-29 06:52:51
|
On Nov 28, 2015, at 7:54 PM, Lonnie Abelbeck <li...@lo...> wrote: > > On Nov 28, 2015, at 5:30 PM, Lonnie Abelbeck <li...@lo...> wrote: > >> Update, >> >> ipsec-tools (racoon) segfaults with x86_64 >> >> Looking for a solution... >> >> Lonnie > > I narrowed down the problem to the function call "plog", this patch makes IPsec work for x86_64... > > --- ipsec-tools-0.8.2/src/racoon/plog.c.orig 2015-11-28 19:23:45.000000000 -0600 > +++ ipsec-tools-0.8.2/src/racoon/plog.c 2015-11-28 19:24:07.000000000 -0600 > @@ -167,6 +167,7 @@ > void > _plog(int pri, const char *func, struct sockaddr *sa, const char *fmt, ...) > { > +return; > va_list ap; > > va_start(ap, fmt); > > -- > But also disables all logging... :-( > > So far I have not been able to isolate this further, possibly others here can beat me to a solution. > > Sadly ipsec-tools does not seem to be actively developed. > > Lonnie Fixed in r7358 ipsec-tools, build with 'ac_cv_va_copy=yes' so the generic workaround (fails on x86_64) is not used. The configure script tries to determine if the C-compiler supports the "va_copy()" call, but can't while cross-compiling so it defaults to a generic workaround in that case. That workaround does not work with x86_64. The solution is to build with 'ac_cv_va_copy=yes' since we have va_copy(). Lonnie |