From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jakub Jelinek To: Martin Schwidefsky Cc: binutils@sources.redhat.com, laroche@redhat.com Subject: s390 gas bug Date: Tue, 02 Oct 2001 05:15:00 -0000 Message-id: <20011002141855.J3251@sunsite.ms.mff.cuni.cz> X-SW-Source: 2001-10/msg00013.html Hi! s390 fails several tests in prelink testsuite, because it IMHO optimizes too much something which it should not optimize. For code like: int f1 (void) { return 1; } int f2 (void) { return f1 () + 1; } (the interesting assembly part is: .globl f1 .type f1,@function ... .LT1_0: .LC0: .long f1@PLT-.LT1_0 ... ) it doesn't create an R_390_PLT32 relocation and instead hardcodes address of f1 above it. For static int f1 (void) { return 1; } this would be right, but as f1 is global symbol, it should be possible to override f1 at runtime (that's exactly what prelink test does and checks whether prelinking creates the expected conflict fixup). When I split the above into 2 C source files, one per function, prelinking passes the parts of the testsuite which don't fail because of kernel bug. Do you agree this is a bug? Jakub