Hi, On 2010年06月06日 15:21, Bill Allombert wrote:
Today circular dependencies in unstable reached an all-time low.
Excellent.
* libc6 libgcc1
This one is tricky, because it is an accurate reflection of the ELF headers. The gcc and glibc build processes actually jump through a lot of hoops to generate two libraries that have a circular dependency.
libgcc uses- abort(), which is short and could be pulled in from libc_pic if we don't mind the code duplication
- memcpy() and memset(), which can be trivially reimplemented or pulled in from libc_pic
- malloc()/free()/realloc()/calloc(), which can be trivially implemented using mmap()/munmap()/memset() if chunks allocated here need not be freed by libc's free().
The other symbols from libgcc are weak references to pthread functions (i.e. no dependency there), and dl_iterate_phdr() from ld.so, which is supplied implicitly and ignored by dpkg-shlibdeps.
Simon