Bug 432068

Summary: gcc fails to build on ia64
Product: [Fedora] Fedora Reporter: Dennis Gilmore <dennis>
Component: gccAssignee: Jakub Jelinek <jakub>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: urgent Docs Contact:
Priority: urgent    
Version: rawhideCC: dchapman
Target Milestone: ---   
Target Release: ---   
Hardware: ia64   
OS: Linux   
URL: http://ia64.koji.fedoraproject.org/koji/taskinfo?taskID=139
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-02-19 16:15:51 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:
Bug Depends On:    
Bug Blocks: 163350    
Attachments:
Description Flags
use $$(gcc_srcdir) in place of $(srcdir) in gcc/config/ia64/t-glibc-no-libunwind none

Description Dennis Gilmore 2008-02-08 17:52:09 UTC
gcc  fails to build with the follwoing message 
gcc: ../../gcc/config/ia64/change-symver.c: No such file or directory

build logs are available at 
http://ia64.koji.fedoraproject.org/koji/taskinfo?taskID=139

you are able to do scratch builds directly on the ia64 build system with the 
following command

koji -c ~/.koji/ia64-config build dist-f9 --scratch /path/to/srpm  

if you dont have ~/.koji/ia64-config  run fedora-packager-setup.sh  and it 
will put it there for you

Comment 1 Doug Chapman 2008-02-13 19:33:53 UTC
This is triggered by the patch: gcc43-ia64-libunwind.patch not working properly
with gcc-4.3.

Which adds the file change-symver.c.  The file _is_ there but it is looking for
it in the wrong directory.

The patch adds this bit of code:
+       gcc -O2 -o $(SHLIB_DIR)/$(SHLIB_SONAME).tweak \
+         $(srcdir)/config/ia64/change-symver.c -lelf && \

which expands to ../../gcc/config/ia64/change-symver.c

The problem is at the point where this fails evidently srcdir is not set right
because we need one more ../ to find the right directory.



Comment 2 Doug Chapman 2008-02-13 19:43:49 UTC
More detail....

The build fails in the directory:
/usr/src/redhat/BUILD/gcc-4.3.0-20080212/obj-ia64-redhat-linux/ia64-redhat-linux/libgcc

If I go there I find I need to add an extra ../ to find the missing file:

[root@wing2 libgcc]# pwd
/usr/src/redhat/BUILD/gcc-4.3.0-20080212/obj-ia64-redhat-linux/ia64-redhat-linux/libgcc

[root@wing2 libgcc]# ls ../../gcc/config/ia64/change-symver.c
ls: cannot access ../../gcc/config/ia64/change-symver.c: No such file or directory
[root@wing2 libgcc]# ls ../../../gcc/config/ia64/change-symver.c
../../../gcc/config/ia64/change-symver.c


However, oddly the Makefile in that directory looks right:

[root@wing2 libgcc]# grep ^srcdir Makefile 
srcdir = ../../../libgcc



Comment 3 Jakub Jelinek 2008-02-13 19:55:43 UTC
Yeah, after the move of libgcc build to toplevel some of the $(srcdir)'s in
SHLIB_* variables need to be changed to $(gcc_srcdir).
Unfortunately, due to kernel-headers bug gcc can't build ATM at all, so I need
to wait for a new kernel to hit the koji buildroots.

Comment 4 Doug Chapman 2008-02-13 20:24:20 UTC
Jakub,

This appears to do it however it also needs to be $$(gcc_srcdir) so it gets
expanded at the right time.  With just $(gcc_srcdir) it gets expanded when the
SHLIB_* variables are set and gcc_srcdir is not yet set at that point.

I tested this using a quick manual build.  I will edit a specfile and do a
scratch build on our ia64 koji server next.

thanks,

- Doug


Comment 5 Doug Chapman 2008-02-13 21:15:38 UTC
Created attachment 294837 [details]
use $$(gcc_srcdir) in place of $(srcdir) in gcc/config/ia64/t-glibc-no-libunwind

This fixes this issue.	I hit a build error later on in the "make check" stage
but that does not appear to be related.

Comment 6 Jakub Jelinek 2008-02-19 16:15:51 UTC
Should be fixed now.