https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100912

--- Comment #3 from Matheus Castanho <msc at linux dot ibm.com> ---
Using objdump -dr ~/usr/lib64/libstdc++.so.6:

[...]
00000000000c9340 <_ZSt16__convert_from_vRKP15__locale_structPciPKcz>:
   c9340:       25 00 4c 3c     addis   r2,r12,37
   c9344:       c0 c5 42 38     addi    r2,r2,-14912
   c9348:       a6 02 08 7c     mflr    r0
   c934c:       e8 ff a1 fb     std     r29,-24(r1)
   c9350:       f0 ff c1 fb     std     r30,-16(r1)
   c9354:       78 33 dd 7c     mr      r29,r6
   c9358:       f8 ff e1 fb     std     r31,-8(r1)
   c935c:       78 2b be 7c     mr      r30,r5
   c9360:       78 23 9f 7c     mr      r31,r4
   c9364:       10 00 01 f8     std     r0,16(r1)
   c9368:       c1 ff 21 f8     stdu    r1,-64(r1)
   c936c:       80 00 e1 f8     std     r7,128(r1)
   c9370:       88 00 01 f9     std     r8,136(r1)
   c9374:       98 00 41 f9     std     r10,152(r1)
   c9378:       90 00 21 f9     std     r9,144(r1)
   c937c:       00 00 63 e8     ld      r3,0(r3)
   c9380:       e1 07 ff 4b     bl      b9b60
<000006bf.plt_call.__uselocale@@GLIBC_2.17>
   c9384:       18 00 41 e8     ld      r2,24(r1)
   c9388:       78 eb a5 7f     mr      r5,r29
   c938c:       78 f3 c4 7f     mr      r4,r30
   c9390:       80 00 c1 38     addi    r6,r1,128
   c9394:       78 1b 69 7c     mr      r9,r3
   c9398:       78 fb e3 7f     mr      r3,r31
   c939c:       78 4b 3e 7d     mr      r30,r9
   c93a0:       01 7f ff 4b     bl      c12a0
<000006bf.plt_call.vsnprintf@@GLIBC_2.17>
   c93a4:       18 00 41 e8     ld      r2,24(r1)
   c93a8:       78 1b 7f 7c     mr      r31,r3
   c93ac:       78 f3 c3 7f     mr      r3,r30
   c93b0:       b1 07 ff 4b     bl      b9b60
<000006bf.plt_call.__uselocale@@GLIBC_2.17>
   c93b4:       18 00 41 e8     ld      r2,24(r1)
   c93b8:       40 00 21 38     addi    r1,r1,64
   c93bc:       78 fb e3 7f     mr      r3,r31
   c93c0:       10 00 01 e8     ld      r0,16(r1)
   c93c4:       e8 ff a1 eb     ld      r29,-24(r1)
   c93c8:       f0 ff c1 eb     ld      r30,-16(r1)
   c93cc:       f8 ff e1 eb     ld      r31,-8(r1)
   c93d0:       a6 03 08 7c     mtlr    r0
   c93d4:       20 00 80 4e     blr
   c93d8:       00 00 00 00     .long 0x0
   c93dc:       00 09 00 01     .long 0x1000900
   c93e0:       80 03 00 00     .long 0x380
   c93e4:       00 00 00 60     nop
   c93e8:       00 00 00 60     nop
   c93ec:       00 00 00 60     nop

[...]


Using LD_LIBRARY_PATH instead of LD_PRELOAD shows the same behavior:

~/build/gcc> LD_LIBRARY_PATH=~/usr/lib64/ ./test-shared 
6.95326e-310


Adding LD_DEBUG=libs shows that it is indeed using the libstdc++ I built:

~/build/gcc> LD_LIBRARY_PATH=~/usr/lib64/ LD_DEBUG=libs ./test-shared           
     38216:     find library=libstdc++.so.6 [0]; searching                      
     38216:      search
path=/home/mscastanho/usr/lib64/glibc-hwcaps/power9:/home/mscastanho/usr/lib64/tls/power9/altivec/dfp:/home/mscastanho/usr/lib64/tls/power9/altivec:/home/
mscastanho/usr/lib64/tls/power9/dfp:/home/mscastanho/usr/lib64/tls/power9:/home/mscastanho/usr/lib64/tls/altivec/dfp:/home/mscastanho/usr/lib64/tls/altivec:/home/mscastanho/usr/l
ib64/tls/dfp:/home/mscastanho/usr/lib64/tls:/home/mscastanho/usr/lib64/power9/altivec/dfp:/home/mscastanho/usr/lib64/power9/altivec:/home/mscastanho/usr/lib64/power9/dfp:/home/ms
castanho/usr/lib64/power9:/home/mscastanho/usr/lib64/altivec/dfp:/home/mscastanho/usr/lib64/altivec:/home/mscastanho/usr/lib64/dfp:/home/mscastanho/usr/lib64
             (LD_LIB
RARY_PATH)                                                                      
     38216:       trying
file=/home/mscastanho/usr/lib64/glibc-hwcaps/power9/libstdc++.so.6
     38216:       trying
file=/home/mscastanho/usr/lib64/tls/power9/altivec/dfp/libstdc++.so.6           
     38216:       trying
file=/home/mscastanho/usr/lib64/tls/power9/altivec/libstdc++.so.6               
     38216:       trying
file=/home/mscastanho/usr/lib64/tls/power9/dfp/libstdc++.so.6                  
                                                                             
38216:       trying file=/home/mscastanho/usr/lib64/tls/power9/libstdc++.so.6   
     38216:       trying
file=/home/mscastanho/usr/lib64/tls/altivec/dfp/libstdc++.so.6                 
                                                                             
38216:       trying file=/home/mscastanho/usr/lib64/tls/altivec/libstdc++.so.6  
     38216:       trying file=/home/mscastanho/usr/lib64/tls/dfp/libstdc++.so.6 
     38216:       trying file=/home/mscastanho/usr/lib64/tls/libstdc++.so.6     
     38216:       trying
file=/home/mscastanho/usr/lib64/power9/altivec/dfp/libstdc++.so.6              
                                                                             
38216:       trying
file=/home/mscastanho/usr/lib64/power9/altivec/libstdc++.so.6   
     38216:       trying
file=/home/mscastanho/usr/lib64/power9/dfp/libstdc++.so.6                      
                                                                             
38216:       trying file=/home/mscastanho/usr/lib64/power9/libstdc++.so.6       
     38216:       trying
file=/home/mscastanho/usr/lib64/altivec/dfp/libstdc++.so.6                      
     38216:       trying file=/home/mscastanho/usr/lib64/altivec/libstdc++.so.6 
     38216:       trying file=/home/mscastanho/usr/lib64/dfp/libstdc++.so.6     
     38216:       trying file=/home/mscastanho/usr/lib64/libstdc++.so.6        
                                                                               
                       38216:                                                   
     38216:     find library=libm.so.6 [0]; searching                          
                                                                               
                       38216:      search path=/home/mscastanho/usr/lib64      
  (LD_LIBRARY_PATH)                                                             
     38216:       trying file=/home/mscastanho/usr/lib64/libm.so.6              
     38216:      search cache=/etc/ld.so.cache                                 
                                                                               
                       38216:       trying file=/lib64/libm.so.6                
     38216:                                                                    
                                                                               
                       38216:     find library=libgcc_s.so.1 [0]; searching     
     38216:      search path=/home/mscastanho/usr/lib64        
(LD_LIBRARY_PATH)                                                              
                                       38216:       trying
file=/home/mscastanho/usr/lib64/libgcc_s.so.1       
     38216:                                                                    
                                                                               
                       38216:     find library=libc.so.6 [0]; searching         
     38216:      search path=/home/mscastanho/usr/lib64        
(LD_LIBRARY_PATH)                                                              
                                       38216:       trying
file=/home/mscastanho/usr/lib64/libc.so.6          
     38216:      search cache=/etc/ld.so.cache                                  
     38216:       trying file=/lib64/libc.so.6                                 
                                                                               
                       38216:                                                   
     38216:                                                                    
                                                                               
                       38216:     calling init: /lib64/ld64.so.2                
     38216:                                                                  
     38216:                                                                    
                                                                               
                       38216:     calling init: /lib64/libc.so.6                
     38216:                                                                    
                                                                               
                       38216:                                                  
                                                                               
                                         38216:     calling init:
/home/mscastanho/usr/lib64/libgcc_s.so.1              
     38216:                                                                    
                                                                               
                       38216:                                                   
     38216:     calling init: /lib64/libm.so.6                                  
     38216:                                                                    
                                                                               
                       38216:                                          
     38216:     calling init: /home/mscastanho/usr/lib64/libstdc++.so.6        
                                                                               
                       38216:                               
     38216:                                                   
     38216:     initialize program: ./test-shared                              
                                                                               
                       38216:                                          
     38216:                                                                    
                                                                               
                       38216:     transferring control: ./test-shared           
     38216:                                                                    
                                                                               
                  6.95325e-310                              
     38216:                                                                    
                                                                               
                       38216:     calling fini: ./test-shared [0]               
     38216:                                                                    
                                                                               
                       38216:                                          
     38216:     calling fini: /home/mscastanho/usr/lib64/libstdc++.so.6 [0]     
     38216:                                                                    
                                                                               
                       38216:                               
     38216:     calling fini: /lib64/libm.so.6 [0]                             
                                                                               
                       38216:                                          
     38216:                                                                    
                                                                               
                       38216:     calling fini:
/home/mscastanho/usr/lib64/libgcc_s.so.1 [0]

Reply via email to