Bug 35377 - too many levels of symbolic links for compat-egcs
too many levels of symbolic links for compat-egcs
Status: CLOSED RAWHIDE
Product: Red Hat Raw Hide
Classification: Retired
Component: compat-egcs (Show other bugs)
1.0
i386 Linux
medium Severity high
: ---
: ---
Assigned To: Jakub Jelinek
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2001-04-09 15:04 EDT by Wehrman, Ian
Modified: 2008-05-01 11:38 EDT (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2001-04-09 15:04:49 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


Attachments (Terms of Use)

  None (edit)
Description Wehrman, Ian 2001-04-09 15:04:45 EDT
with compat-egcs-6.2-1.1.2.14, all the files in
/usr/lib/gcc-lib/i386-glibc21-linux/egcs-2.91.66/include/ are symbolic
links, and all of them are broken. with a clean install of
compat-egcs-6.2-1.1.2.14, one can verify this with rpm --verify compat-egcs
and see that the output is: 

....L...   /usr/lib/gcc-lib/i386-glibc21-linux/egcs-2.91.66/include/README
....L...   /usr/lib/gcc-lib/i386-glibc21-linux/egcs-2.91.66/include/float.h
....L...  
/usr/lib/gcc-lib/i386-glibc21-linux/egcs-2.91.66/include/iso646.h
....L...  
/usr/lib/gcc-lib/i386-glibc21-linux/egcs-2.91.66/include/limits.h
....L...   /usr/lib/gcc-lib/i386-glibc21-linux/egcs-2.91.66/include/proto.h
etc.

among other things, this prevents compilation of the standard kernel source
with kgcc. output looks something like this: 

kgcc -D__KERNEL__ -I/usr/src/linux-current/include -Wall
-Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe 
-march=i686   -c -o init/main.o init/main.c
In file included from /usr/src/linux-current/include/linux/wait.h:13,
                 from /usr/src/linux-current/include/linux/fs.h:12,
                 from /usr/src/linux-current/include/linux/capability.h:17,
                 from /usr/src/linux-current/include/linux/binfmts.h:5,
                 from /usr/src/linux-current/include/linux/sched.h:9,
                 from /usr/src/linux-current/include/linux/mm.h:4,
                 from /usr/src/linux-current/include/linux/slab.h:14,
                 from /usr/src/linux-current/include/linux/proc_fs.h:5,
                 from init/main.c:15:
/usr/src/linux-current/include/linux/kernel.h:10: stdarg.h: Too many levels
of symbolic links
In file included from /usr/src/linux-current/include/linux/wait.h:13,
                 from /usr/src/linux-current/include/linux/fs.h:12,
                 from /usr/src/linux-current/include/linux/capability.h:17,
                 from /usr/src/linux-current/include/linux/binfmts.h:5,
                 from /usr/src/linux-current/include/linux/sched.h:9,
                 from /usr/src/linux-current/include/linux/mm.h:4,
                 from /usr/src/linux-current/include/linux/slab.h:14,
                 from /usr/src/linux-current/include/linux/proc_fs.h:5,
                 from init/main.c:15:
/usr/src/linux-current/include/linux/kernel.h:62: parse error before
`va_list'
/usr/src/linux-current/include/linux/kernel.h:62: warning: function
declaration isn't a prototype
make: *** [init/main.o] Error 1

it looks like this happened in the shuffle of moving kgcc from it's own
rpm, to the compat-egcs package.
Comment 1 Jakub Jelinek 2001-04-10 05:11:07 EDT
No, it happened because compat-egcs-6.2-1.1.2.12 and compat-egcs-6.2-1.1.2.13
used to hardlink the header files between /usr/lib/gcc-lib/i386-{glibc21,redhat}-linux/include
and rpm did not handle this well. If you upgrade from the compat-egcs shipped
in 7.0 originally (or from 6.2), all should be fine.
What you can do now is either rpm -e the compat packages and install them
again, or rm -rf /usr/lib/gcc-lib/i386-glibc21-linux and rpm -Uvh --force
the compat packages.
Comment 2 Wehrman, Ian 2001-04-10 10:08:24 EDT
hmm. this doesn't seem to do the trick for me. i've removed the compat-*
packages, and reinstalled from rawhide. unfortunately, the links are still broken. 

$ pwd
/usr/lib/gcc-lib/i386-glibc21-linux/egcs-2.91.66/include
$ ls -l stdarg.h
... stdarg.h -> ../../../i386-glibc21-linux/egcs-2.91.66/include/stdarg.h

all the include files in this directory are links pointing to themselves. am i
missing something?
Comment 3 Jakub Jelinek 2001-04-10 10:29:10 EDT
So after you remove the packages, make sure /usr/lib/gcc-lib/i386-glibc21-linux
tree is empty.
I just did an compat-egcs-6.2-1.1.2.9 (and other subpackages) to
compat-egcs-6.2-1.1.2.14 and the files are ok.
Comment 4 Sammy 2001-04-10 13:55:53 EDT
No...the files are not there....they are symbolic links to themselves! I removed
all the compat rpms, removed the entire directory /usr/lib/gcc-lib/i386-glibc21-linux/
and reinstalled the rpms and links are still pointing to themselves and the real
files are nowhere in the system.
Comment 5 Wehrman, Ian 2001-04-11 15:00:12 EDT
yes, that's what i see over here too. this bug should be reopened.

Note You need to log in before you can comment on or make changes to this bug.