From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30455 invoked by alias); 12 Feb 2011 15:05:10 -0000 Received: (qmail 30444 invoked by uid 22791); 12 Feb 2011 15:05:09 -0000 X-SWARE-Spam-Status: No, hits=-2.6 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00,TW_BG X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 12 Feb 2011 15:05:05 +0000 From: "burnus at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/47032] libgfortran references complex long double functions missing on AIX X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Keywords: build X-Bugzilla-Severity: normal X-Bugzilla-Who: burnus at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: CC Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Date: Sat, 12 Feb 2011 15:08:00 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2011-02/txt/msg01522.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47032 Tobias Burnus changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |burnus at gcc dot gnu.org --- Comment #12 from Tobias Burnus 2011-02-12 15:04:48 UTC --- (In reply to comment #11) > While this is absolutely true, the major problem here is that gcc should not > have switched to 128bit long double at all with AIX 6.1 (bug#46481). Cf. http://gcc.gnu.org/ml/gcc/2011-02/msg00109.html and http://gcc.gnu.org/ml/gcc/2011-02/msg00159.html * * * For the libgfortran side: Seems as if one should add a "#include "-based link test (cf. comment 8 and 10). libgfortran currently only uses the functions if available (configure check). The effect, if the are not, is the following: (In reply to comment #0) > ld: 0711-317 ERROR: Undefined symbol: .__copysignl128 > ld: 0711-317 ERROR: Undefined symbol: .__nextafterl128 Used by Fortran's NEAREST intrinsic (if available; no fall back if not) - thus, it will fail if a user calls this function but should otherwise be OK. > ld: 0711-317 ERROR: Undefined symbol: .__scalbnl128 Used for the intrinsics RRSPACING, SPACING and SET_EXPONENT. > ld: 0711-317 ERROR: Undefined symbol: .__truncl128 Used for Fortran's ERFC_SCALED intrinsic. > ld: 0711-317 ERROR: Undefined symbol: .__cabsl128 > ld: 0711-317 ERROR: Undefined symbol: .__cargl128 gfortran offers a replacement function in intrinsics/c99_functions.c, if configure believes that those are not available. I think most codes/users do not need either of NEAREST, ERFC_SCALED, RRSPACING, SPACING and SET_EXPONENT. (I do not know whether other math functions are effected, whose calls are directly generated via the front end.)