From owner-freebsd-current@FreeBSD.ORG Sat May 19 23:37:46 2007 Return-Path: X-Original-To: freebsd-current@freebsd.org Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 88ECA16A469 for ; Sat, 19 May 2007 23:37:46 +0000 (UTC) (envelope-from pieter@degoeje.nl) Received: from smtp.utwente.nl (smtp1.utsp.utwente.nl [130.89.2.8]) by mx1.freebsd.org (Postfix) with ESMTP id 0F01113C448 for ; Sat, 19 May 2007 23:37:45 +0000 (UTC) (envelope-from pieter@degoeje.nl) Received: from nox.student.utwente.nl (nox.student.utwente.nl [130.89.165.91]) by smtp.utwente.nl (8.12.10/SuSE Linux 0.7) with ESMTP id l4JNbdLr022555; Sun, 20 May 2007 01:37:40 +0200 From: Pieter de Goeje To: freebsd-current@freebsd.org User-Agent: KMail/1.9.6 References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200705200137.39544.pieter@degoeje.nl> X-UTwente-MailScanner-Information: Scanned by MailScanner. Contact helpdesk@ITBE.utwente.nl for more information. X-UTwente-MailScanner: Found to be clean X-UTwente-MailScanner-From: pieter@degoeje.nl X-Spam-Status: No Cc: Michiel Boland Subject: Re: openvpn dies in recent -CURRENT X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Date: Sat, 19 May 2007 23:37:46 -0000 X-Original-Date: Sun, 20 May 2007 01:37:39 +0200 X-List-Received-Date: Sat, 19 May 2007 23:37:46 -0000 On Saturday 19 May 2007, Michiel Boland wrote: > Hi. Openvpn dies with an illegal instruction error in recent -CURRENTs. (I > guess currents with the new gcc.) > > Running through a debugger gives:- > > Starting program: /usr/local/sbin/openvpn > /usr/local/etc/openvpn/openvpn.conf > > Program received signal SIGILL, Illegal instruction. > 0x0000000800868dd0 in PEM_read_bio_X509 (bp=0x800e4b080, x=0x0, > cb=0x439e70 , u=0x0) from /lib/libcrypto.so.5 > (gdb) bt > #0 0x0000000800868dd0 in PEM_read_bio_X509 (bp=0x800e4b080, x=0x0, > cb=0x439e70 , u=0x0) from /lib/libcrypto.so.5 > #1 0x00000008006b14e8 in SSL_CTX_use_certificate_file (ctx=0x800e3d1c0, > file=0x800e1a0e8 "/usr/local/etc/openvpn/mboland.crt", type=Variable > "type" is not available. ) > at > /usr/src/secure/lib/libssl/../../../crypto/openssl/ssl/ssl_rsa.c:481 #2 > 0x000000000043b0f8 in init_ssl () > #3 0x0000000000413a04 in init_instance () > #4 0x0000000000413ecd in init_instance_handle_signals () > #5 0x0000000000422b7f in main () > (gdb) disas > Dump of assembler code for function PEM_read_bio_X509: > 0x0000000800868dd0 : ud2a > End of assembler dump. Basically everything that depends on openssl is broken. This is because gcc 4.2 disallows function pointer conversion. Gcc emits several warnings of this type during the compilation of openssl: "warning: function called through a non-compatible type note: if this code is reached, the program will abort" At these points gcc inserts an abort() call, instead of the intended call through a function pointer. You can find more information here: http://gcc.gnu.org/ml/gcc/2006-07/msg00037.html http://www.mail-archive.com/openssl-dev%40openssl.org/msg21938.html Apparently a fix for this is in openssl 0.9.9. - Pieter de Goeje