From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13119 invoked by alias); 15 Feb 2010 16:59:04 -0000 Received: (qmail 13108 invoked by uid 22791); 15 Feb 2010 16:59:03 -0000 X-SWARE-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from bromo.med.uc.edu (HELO bromo.med.uc.edu) (129.137.3.146) by sourceware.org (qpsmtpd/0.43rc1) with SMTP; Mon, 15 Feb 2010 16:59:00 +0000 Received: from bromo.med.uc.edu (localhost.localdomain [127.0.0.1]) by bromo.med.uc.edu (Postfix) with ESMTP id EC431B0060 for ; Mon, 15 Feb 2010 11:58:56 -0500 (EST) Received: (from howarth@localhost) by bromo.med.uc.edu (8.14.3/8.14.3/Submit) id o1FGwuxU010366 for java@gcc.gnu.org; Mon, 15 Feb 2010 11:58:56 -0500 Date: Mon, 15 Feb 2010 16:59:00 -0000 From: Jack Howarth To: java@gcc.gnu.org Subject: PR16923 failure on darwin Message-ID: <20100215165856.GA9808@bromo.med.uc.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.18 (2008-05-17) Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org X-SW-Source: 2010-02/txt/msg00003.txt.bz2 In the process of starting to debug the failure of the PR16923 libjava testcase on x86_64-apple-darwin10, I discovered that the actual failure is masked by an issue with the testcase picking the wrong libiconv to link against. Currently the failure appears as... Executing on host: /sw/src/fink.build/gcc45-4.4.999-20100213/darwin_objdir/gcc/xgcc -B/sw/src/fink.build/gcc45-4.4.999-20100213/darwin_objdir/gcc/ /sw/src/fink.build/gcc45-4.4.999-20100213/gcc-4.5-20100213/libjava/testsuite/libjava.jni/invocation/PR16923.c -bind_at_load -multiply_defined suppress -I. -I.. -I/sw/src/fink.build/gcc45-4.4.999-20100213/gcc-4.5-20100213/libjava/testsuite/libjava.jni -I/sw/src/fink.build/gcc45-4.4.999-20100213/gcc-4.5-20100213/libjava/testsuite/../include -I/sw/src/fink.build/gcc45-4.4.999-20100213/gcc-4.5-20100213/libjava/testsuite/../classpath/include -fdollars-in-identifiers -L/sw/src/fink.build/gcc45-4.4.999-20100213/darwin_objdir/x86_64-apple-darwin10.3.0/./libjava/.libs -ljvm -shared-libgcc -lgcj -liconv -lm -o PR16923 (timeout = 300) PASS: PR16923.c compilation set_ld_library_path_env_vars: ld_library_path=.:/sw/src/fink.build/gcc45-4.4.999-20100213/darwin_objdir/x86_64-apple-darwin10.3.0/./libjava/.libs Setting LD_LIBRARY_PATH to .:/sw/src/fink.build/gcc45-4.4.999-20100213/darwin_objdir/x86_64-apple-darwin10.3.0/./libjava/.libs:.:/sw/src/fink.build/gcc45-4.4.999-20100213/darwin_objdir/x86_64-apple-darwin10.3.0/./libjava/.libs dyld: _dyld_bind_fully_image_containing_address() error dyld: Symbol not found: _libiconv Referenced from: /sw/src/fink.build/gcc45-4.4.999-20100213/darwin_objdir/x86_64-apple-darwin10.3.0/./libjava/.libs/libgcj.11.dylib Expected in: flat namespace in /sw/src/fink.build/gcc45-4.4.999-20100213/darwin_objdir/x86_64-apple-darwin10.3.0/./libjava/.libs/libgcj.11.dylib FAIL: PR16923 run UNTESTED: PR16923 output when FSF gcc trunk is built as... Compiler version: 4.5.0 20100214 (experimental) (GCC) Platform: x86_64-apple-darwin10.3.0 configure flags: --prefix=/sw --prefix=/sw/lib/gcc4.5 --mandir=/sw/share/man --infodir=/sw/share/info --enable-languages=c,c++,fortran,objc,obj-c++,java --with-gmp=/sw --with-libiconv-prefix=/sw --with-ppl=/sw --with-cloog=/sw --with-mpc=/sw --with-system-zlib --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib --disable-libjava-multilib Note that all of the binaries in FSF gcc are actually linked against the libiconv from /sw/lib, but the testcase ends up defaulting to the system libiconv in /usr/lib causing the missing symbol. I noticed that we have... # # This spec file is read by gcj when linking. # It is used to specify the standard libraries we need in order # to link with libgcj. # %rename startfile startfileorig *startfile: %(startfileorig) %rename lib liborig *lib: %{s-bc-abi:} -lgcj -lm -L/sw/lib -liconv -lpthread -lz -allow_stack_execute -ldl %(libgcc) %(liborig) *jc1: -fhash-synchronization -fuse-divide-subroutine -fcheck-references -fuse-boehm-gc -fnon-call-exceptions -fkeep-inline-functions for libgcj.spec on this build of darwin but there isn't anything done to direct gcc to the correct libiconv. Any ideas on how we can make the PR16923 testcase smarter about finding the actual libiconv that FSF gcc is built against? Jack ps If I repeat the compilation of PR16923 with -L/sw/lib -liconv, the resulting binary crashes with... ./PR16923Assertion failed: (class_id), function main, file /sw/src/fink.build/gcc45-4.4.999-20100213/gcc-4.5-20100213/libjava/testsuite/libjava.jni/invocation/PR16923.c, line 35.Abort I'll try to debug this under darwin9 (where I can walk through the FSF libgcc unwinder) to see what exactly is causing this assertion.