From unknown Fri Jun 20 07:21:41 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#9316 <9316@debbugs.gnu.org> To: bug#9316 <9316@debbugs.gnu.org> Subject: Status: AIX and JNI: *.so versus *.a Reply-To: bug#9316 <9316@debbugs.gnu.org> Date: Fri, 20 Jun 2025 14:21:41 +0000 retitle 9316 AIX and JNI: *.so versus *.a reassign 9316 libtool submitter 9316 "Daniel Richard G." severity 9316 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 17 18:00:33 2011 Received: (at submit) by debbugs.gnu.org; 17 Aug 2011 22:00:33 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QtoA4-0001ej-BD for submit@debbugs.gnu.org; Wed, 17 Aug 2011 18:00:33 -0400 Received: from eggs.gnu.org ([140.186.70.92]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QtoA0-0001c7-1i for submit@debbugs.gnu.org; Wed, 17 Aug 2011 18:00:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Qto87-0006dU-P7 for submit@debbugs.gnu.org; Wed, 17 Aug 2011 17:58:32 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW, T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from lists.gnu.org ([140.186.70.17]:43783) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qto87-0006dQ-Nh for submit@debbugs.gnu.org; Wed, 17 Aug 2011 17:58:31 -0400 Received: from eggs.gnu.org ([140.186.70.92]:56794) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qto86-0001V1-Rx for bug-libtool@gnu.org; Wed, 17 Aug 2011 17:58:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Qto85-0006d6-CR for bug-libtool@gnu.org; Wed, 17 Aug 2011 17:58:30 -0400 Received: from out2.smtp.messagingengine.com ([66.111.4.26]:51790) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qto85-0006cM-49 for bug-libtool@gnu.org; Wed, 17 Aug 2011 17:58:29 -0400 Received: from compute1.internal (compute1.nyi.mail.srv.osa [10.202.2.41]) by gateway1.messagingengine.com (Postfix) with ESMTP id EB33921989 for ; Wed, 17 Aug 2011 17:58:26 -0400 (EDT) Received: from web2.messagingengine.com ([10.202.2.212]) by compute1.internal (MEProxy); Wed, 17 Aug 2011 17:58:26 -0400 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=message-id:from:to:mime-version :content-transfer-encoding:content-type:subject:date; s=smtpout; bh=HaPD4OE5AWiqednAUiEFDfcypqo=; b=ZjJPNa1Ym1T/BP37kmLuIpDMNfyK zRpW0gnBwWxrgQ6laU6EQHN9gcPD4W4cR4EO7PkHUlKjjzREAKh/649xc5D4yzNU ItoCuUUOKBKqbSK9Glias1zwxHpiNVQ7+Aywnda4NMzBIf9ObnkVP2JxPDggU6Wl p5TLuvR88m3unwo= Received: by web2.messagingengine.com (Postfix, from userid 99) id CB6433056EB; Wed, 17 Aug 2011 17:58:26 -0400 (EDT) Message-Id: <1313618306.10853.140258130791573@webmail.messagingengine.com> X-Sasl-Enc: Kz0dDGnl61ssO8JtMjT9FZi0lGPcVpumLXN/ELMav0Ev 1313618306 From: "Daniel Richard G." To: bug-libtool@gnu.org MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii" X-Mailer: MessagingEngine.com Webmail Interface Subject: AIX and JNI: *.so versus *.a Date: Wed, 17 Aug 2011 17:58:26 -0400 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 140.186.70.17 X-Spam-Score: -6.2 (------) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.3 (------) Hello, I am using Libtool 2.4 to build Java JNI modules on AIX. I've noticed that on AIX, a shared library is initially built as an .so file via "gcc -shared", but then this .so is packed up into an .a file using ar(1). This is the case even if -export-dynamic -module is specified. When I go to use these JNI modules, however, the JRE makes very clear that it doesn't like .a files: Exception in thread "main" java.lang.UnsatisfiedLinkError: jni_test ( 0509-022 Cannot load module /tmp/jni/libjni_test.a. 0509-103 The module has an invalid magic number.) at java.lang.ClassLoader.loadLibraryWithPath(ClassLoader.java:994) at java.lang.ClassLoader.loadLibraryWithClassLoader(ClassLoader.java:958) at java.lang.System.loadLibrary(System.java:453) at com.example.jnitest.JniTest.(JniTest.java:21) at java.lang.J9VMInternals.initializeImpl(Native Method) at java.lang.J9VMInternals.initialize(J9VMInternals.java:196) at JniTest.main(JniTest.java:56) If I extract the .so files from the .a files, however, the JRE happily uses those. Currently, I am using an install-exec-hook rule to perform this step during "make install". There does not appear to be a Libtool option to skip the use of ar(1), which would be a preferable approach. --Daniel -- NAME = Daniel Richard G. _\|/_ Remember, skunks MAIL = skunk@iSKUNK.ORG (/o|o\) _- don't smell bad--- MAIL+= skunk@alum.MIT.EDU < (^),> it's the people who WWW = (not there yet!) / \ annoy us that do! From debbugs-submit-bounces@debbugs.gnu.org Sat Aug 20 00:25:30 2011 Received: (at 9316) by debbugs.gnu.org; 20 Aug 2011 04:25:30 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Qud7h-0007A2-Kf for submit@debbugs.gnu.org; Sat, 20 Aug 2011 00:25:30 -0400 Received: from out2.smtp.messagingengine.com ([66.111.4.26]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Qud7e-00079q-Fl for 9316@debbugs.gnu.org; Sat, 20 Aug 2011 00:25:27 -0400 Received: from compute3.internal (compute3.nyi.mail.srv.osa [10.202.2.43]) by gateway1.messagingengine.com (Postfix) with ESMTP id 93F9820C73; Sat, 20 Aug 2011 00:23:17 -0400 (EDT) Received: from web2.messagingengine.com ([10.202.2.212]) by compute3.internal (MEProxy); Sat, 20 Aug 2011 00:23:17 -0400 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=message-id:from:to:cc:mime-version :content-transfer-encoding:content-type:references:subject :in-reply-to:date; s=smtpout; bh=Bg0Mtb6IbbX1LkdZXiIyKzzLuWM=; b= oW9qL6ogcmWIjfasjicfVfzzX3BfvQ7We9W/wFOhD+7AQ9yVvvNSqW4jNrO47PC4 UDeDP1BCz1j4D3zt7E1L1nCORhJcCYjlGkUkRs+DNeQ59nhIluNv1yj6ZRfJQzIa Vh7eqRO3n0p7cfU57uoQ2w9Dzle28ooe4ZuuJ/1Q5aY= Received: by web2.messagingengine.com (Postfix, from userid 99) id 6BE5C32005D; Sat, 20 Aug 2011 00:23:17 -0400 (EDT) Message-Id: <1313814197.23567.140258131704837@webmail.messagingengine.com> X-Sasl-Enc: q2ngQKRk/J44VYYh+Qw6cyefNTtwNLI24trCbCrtXe8Y 1313814197 From: "Daniel Richard G." To: "Peter O'Gorman" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii" X-Mailer: MessagingEngine.com Webmail Interface References: <1313618306.10853.140258130791573@webmail.messagingengine.com> Subject: Re: bug#9316: AIX and JNI: *.so versus *.a In-Reply-To: Date: Sat, 20 Aug 2011 00:23:17 -0400 X-Spam-Score: -4.8 (----) X-Debbugs-Envelope-To: 9316 Cc: 9316@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -4.8 (----) On Fri, 2011 Aug 19 22:55-0500, Peter O'Gorman wrote: > > If you add -Wl,-brtl to LDFLAGS at configure time, libtool will build > plain .so's Interesting. This bit from doc/notes.txt in the Libtool source distribution seems relevant: * On AIX there are two different styles of shared linking, one in which symbols are bound at link-time and one in which symbols are bound at runtime only, similar to ELF. In case of doubt use `LDFLAGS=-Wl,-brtl' for the latter style. Why isn't Libtool itself already adding this flag when -module is specified? From debbugs-submit-bounces@debbugs.gnu.org Sat Aug 20 10:05:51 2011 Received: (at 9316) by debbugs.gnu.org; 20 Aug 2011 14:05:51 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QumBJ-00040p-Ro for submit@debbugs.gnu.org; Sat, 20 Aug 2011 10:05:51 -0400 Received: from pogma.xen.prgmr.com ([68.68.97.8]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Quch2-0005Do-HG for 9316@debbugs.gnu.org; Fri, 19 Aug 2011 23:57:58 -0400 Received: from [10.0.0.48] (24-117-47-218.cpe.cableone.net [24.117.47.218]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by pogma.xen.prgmr.com (Postfix) with ESMTP id 7FA8DBF5E2; Sat, 20 Aug 2011 03:55:46 +0000 (UTC) X-DKIM: Sendmail DKIM Filter v2.8.3 pogma.xen.prgmr.com 7FA8DBF5E2 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=pogma.com; s=pogmail; t=1313812546; bh=G2U+Ev6gcrXmPmgejvHkvwM0Dkn1cC+OpzaPsXf4VIM=; h=References:In-Reply-To:Mime-Version:Content-Type:Message-Id: Content-Transfer-Encoding:Cc:From:Subject:Date:To; b=Kamn2Zp8kk+90UG6YaMchqQ3Sa/O8gaLjzJ2EFnDUih+KakwmA20clBLOJmEj10jm H2QnimQ78GQ9ekXqSVIl01wkAJqrroEsYZU07Ccngu8O841Z/fCVR886ZTbhVE5RxH 7/84IszrCLLbJ5K6DjiwkFJIXUl4wMC5GGRFn2ks= References: <1313618306.10853.140258130791573@webmail.messagingengine.com> In-Reply-To: <1313618306.10853.140258130791573@webmail.messagingengine.com> Mime-Version: 1.0 (Apple Message framework v1082) Content-Type: text/plain; charset=us-ascii Message-Id: Content-Transfer-Encoding: quoted-printable From: Peter O'Gorman Subject: Re: bug#9316: AIX and JNI: *.so versus *.a Date: Fri, 19 Aug 2011 22:55:45 -0500 To: Daniel Richard G. X-Mailer: Apple Mail (2.1082) X-Spam-Score: -2.6 (--) X-Debbugs-Envelope-To: 9316 X-Mailman-Approved-At: Sat, 20 Aug 2011 10:05:48 -0400 Cc: 9316@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.6 (--) On Aug 17, 2011, at 4:58 PM, Daniel Richard G. wrote: > Hello, >=20 > I am using Libtool 2.4 to build Java JNI modules on AIX. Hi, If you add -Wl,-brtl to LDFLAGS at configure time, libtool will build = plain .so's Peter >=20 > I've noticed that on AIX, a shared library is initially built as an = .so > file via "gcc -shared", but then this .so is packed up into an .a file > using ar(1). This is the case even if -export-dynamic -module is > specified. >=20 > When I go to use these JNI modules, however, the JRE makes very clear > that it doesn't like .a files: >=20 > Exception in thread "main" java.lang.UnsatisfiedLinkError: jni_test ( = 0509-022 Cannot load module /tmp/jni/libjni_test.a. > 0509-103 The module has an invalid magic number.) > at = java.lang.ClassLoader.loadLibraryWithPath(ClassLoader.java:994) > at = java.lang.ClassLoader.loadLibraryWithClassLoader(ClassLoader.java:958) > at java.lang.System.loadLibrary(System.java:453) > at com.example.jnitest.JniTest.(JniTest.java:21) > at java.lang.J9VMInternals.initializeImpl(Native Method) > at java.lang.J9VMInternals.initialize(J9VMInternals.java:196) > at JniTest.main(JniTest.java:56) >=20 > If I extract the .so files from the .a files, however, the JRE happily > uses those. Currently, I am using an install-exec-hook rule to perform > this step during "make install". There does not appear to be a Libtool > option to skip the use of ar(1), which would be a preferable approach. >=20 >=20 > --Daniel >=20 >=20 > --=20 > NAME =3D Daniel Richard G. _\|/_ Remember, skunks > MAIL =3D skunk@iSKUNK.ORG (/o|o\) _- don't smell bad--- > MAIL+=3D skunk@alum.MIT.EDU < (^),> it's the people who > WWW =3D (not there yet!) / \ annoy us that do! >=20 >=20 >=20 > _______________________________________________ > Bug-libtool mailing list > Bug-libtool@gnu.org > https://lists.gnu.org/mailman/listinfo/bug-libtool >=20 -- Peter O'Gorman http://pogma.com