Bug 754695

Summary: some symbols can't be found in libc.so.6
Product: [Fedora] Fedora Reporter: Sergei Nikulov <sergey.nikulov>
Component: glibcAssignee: Jeff Law <law>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 16CC: fweimer, jakub, law, schwab, s.stepanov
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-12-08 06:44:50 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Sergei Nikulov 2011-11-17 12:03:18 UTC
Description of problem:
ELDK-3.1.1 cross compiler linker broken on Fedora 16, but works on 14,15.

Version-Release number of selected component (if applicable):
Fedora 16 x86_64
[sergey@solarwind-vm ~]$ uname -a
Linux solarwind-vm 3.1.1-1.fc16.x86_64 #1 SMP Fri Nov 11 21:47:56 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux

ELDK-3.1.1 from here http://www.denx.de/wiki/DULG/ELDKAvailability

How reproducible:
Install ELDK-3.1.1 (some prerequisites here http://www.denx.de/wiki/view/DULG/ELDKUsageIn64BitEnvironment).
Try compile minimal C program with ppc_8xx-gcc to get executable file.


Steps to Reproduce:
1. create C source file. "int main() {return 0;}" enough
2. try compile it with ppc_8xx-gcc
  
Actual results:
[sergey@solarwind-vm ~]$ eldk/3.1.1/usr/bin/ppc_8xx-gcc tstcomp.c 
/home/sergey/eldk/3.1.1/usr/bin/../lib/gcc-lib/ppc-linux/3.3.3/../../../../ppc-linux/bin/ld: warning: ld.so.1, needed by /home/sergey/eldk/3.1.1/usr/../ppc_8xx/lib/libc.so.6, not found (try using -rpath or -rpath-link)
/home/sergey/eldk/3.1.1/usr/../ppc_8xx/lib/libc.so.6: undefined reference to `_dl_lookup_versioned_symbol_skip@GLIBC_PRIVATE'
/home/sergey/eldk/3.1.1/usr/../ppc_8xx/lib/libc.so.6: undefined reference to `_rtld_global@GLIBC_PRIVATE'
/home/sergey/eldk/3.1.1/usr/../ppc_8xx/lib/libc.so.6: undefined reference to `_dl_lookup_versioned_symbol@GLIBC_PRIVATE'
/home/sergey/eldk/3.1.1/usr/../ppc_8xx/lib/libc.so.6: undefined reference to `_dl_start_profile@GLIBC_PRIVATE'
/home/sergey/eldk/3.1.1/usr/../ppc_8xx/lib/libc.so.6: undefined reference to `_dl_check_map_versions@GLIBC_PRIVATE'
/home/sergey/eldk/3.1.1/usr/../ppc_8xx/lib/libc.so.6: undefined reference to `_dl_mcount'
/home/sergey/eldk/3.1.1/usr/../ppc_8xx/lib/libc.so.6: undefined reference to `__libc_enable_secure@GLIBC_PRIVATE'
/home/sergey/eldk/3.1.1/usr/../ppc_8xx/lib/libc.so.6: undefined reference to `_dl_get_origin@GLIBC_PRIVATE'
/home/sergey/eldk/3.1.1/usr/../ppc_8xx/lib/libc.so.6: undefined reference to `_dl_dst_substitute@GLIBC_PRIVATE'
/home/sergey/eldk/3.1.1/usr/../ppc_8xx/lib/libc.so.6: undefined reference to `_dl_debug_state@GLIBC_PRIVATE'
/home/sergey/eldk/3.1.1/usr/../ppc_8xx/lib/libc.so.6: undefined reference to `_dl_init@GLIBC_PRIVATE'
/home/sergey/eldk/3.1.1/usr/../ppc_8xx/lib/libc.so.6: undefined reference to `__libc_stack_end'
/home/sergey/eldk/3.1.1/usr/../ppc_8xx/lib/libc.so.6: undefined reference to `_dl_dst_count@GLIBC_PRIVATE'
/home/sergey/eldk/3.1.1/usr/../ppc_8xx/lib/libc.so.6: undefined reference to `_dl_out_of_memory@GLIBC_PRIVATE'
/home/sergey/eldk/3.1.1/usr/../ppc_8xx/lib/libc.so.6: undefined reference to `_dl_signal_error@GLIBC_PRIVATE'
/home/sergey/eldk/3.1.1/usr/../ppc_8xx/lib/libc.so.6: undefined reference to `_dl_debug_printf@GLIBC_PRIVATE'
/home/sergey/eldk/3.1.1/usr/../ppc_8xx/lib/libc.so.6: undefined reference to `_r_debug'
/home/sergey/eldk/3.1.1/usr/../ppc_8xx/lib/libc.so.6: undefined reference to `_dl_map_object_deps@GLIBC_PRIVATE'
/home/sergey/eldk/3.1.1/usr/../ppc_8xx/lib/libc.so.6: undefined reference to `_dl_unload_cache@GLIBC_PRIVATE'
/home/sergey/eldk/3.1.1/usr/../ppc_8xx/lib/libc.so.6: undefined reference to `_dl_relocate_object@GLIBC_PRIVATE'
/home/sergey/eldk/3.1.1/usr/../ppc_8xx/lib/libc.so.6: undefined reference to `_dl_argv@GLIBC_PRIVATE'
/home/sergey/eldk/3.1.1/usr/../ppc_8xx/lib/libc.so.6: undefined reference to `_dl_catch_error@GLIBC_PRIVATE'
/home/sergey/eldk/3.1.1/usr/../ppc_8xx/lib/libc.so.6: undefined reference to `_dl_lookup_symbol_skip@GLIBC_PRIVATE'
/home/sergey/eldk/3.1.1/usr/../ppc_8xx/lib/libc.so.6: undefined reference to `_dl_lookup_symbol@GLIBC_PRIVATE'
/home/sergey/eldk/3.1.1/usr/../ppc_8xx/lib/libc.so.6: undefined reference to `_dl_map_object@GLIBC_PRIVATE'
collect2: ld returned 1 exit status
[sergey@solarwind-vm ~]$ 

Expected results:
ppc_8xx binary created successfully, since no breaking changes found in release notice for Fedora16

Additional info:
Will provide additional info upon request.

Comment 1 Sergej Stepanov 2011-12-07 13:54:20 UTC
No action?
I know, it is old, but anyway, is here some progress?

Comment 2 Jeff Law 2011-12-07 17:19:41 UTC
I'm just getting my head around everything that needs to be taken care of in glibc-land.  This is in the queue to investigate, but just not at the top of the queue yet.

Comment 3 Jeff Law 2011-12-08 06:44:50 UTC
Those symbols are for use within glibc only, any applications which reference those symbols are simply broken.  The decision was made to (finally) make those symbols unavailable to applications in F16.

You need to contact the folks that put together ELDK to fix their software.

Sorry

Comment 4 Jakub Jelinek 2011-12-08 07:52:45 UTC
In this case the actual bug is that you have another binary libc.so.6 somewhere in the search path, but don't have other compatible glibc libraries, including the dynamic linker.

Comment 5 Sergei Nikulov 2011-12-08 12:18:43 UTC
@Jakub Jelinek - The problem is that it was working on any prior F16 releases, but  now it is not.  

@Jeff Law - It is the matter of binary compatibility. If it is intentional decision to break it - go ahead. But don't forget to mention it in Release notes.

Comment 6 Jeff Law 2011-12-08 16:59:11 UTC
Yes, it's a binary compatibility issue and the change should have been in the release notes.  Both the decision to remove the private symbols and the lack of a note pre-date my involvement in day-to-date glibc activities for Fedora.

Comment 7 Sergej Stepanov 2011-12-08 20:59:25 UTC
Hello once again.

I may be some off  topic and would not say I had some boring.
Such strings I have found with "strace -f ppc_8xx-gcc -v test.c" on 2 different computer with F16.

1...
[pid 14027] lstat64("/opt/eldk-3.1/usr/bln/ppc-linux-ld", 0xffbef650) = -1 ENOENT (No such file or directory)

It should be "/opt/eldk-3.1/usr/bin/ppc-linux-ld"

2...
[pid 17497] lstat64("/opt/eldk/usr/lib/gcc-lib/.li../bin/upc-linux-ld", 0xff9b2280) = -1 ENOENT (No such file or directory)

It should be:
/opt/eldk/usr/lib/gcc-lib/../../bin/ppc-linux-ld

I can be wrong...
May i have some memory problem?