Bug 492174

Summary: qt fails to build on ia64
Product: [Fedora] Fedora Reporter: Doug Chapman <dchapman>
Component: qtAssignee: Than Ngo <than>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: 11CC: kevin, rdieter, than
Target Milestone: ---   
Target Release: ---   
Hardware: ia64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-09-08 11:22:55 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:
Attachments:
Description Flags
patch to fix build on ia64 none

Description Doug Chapman 2009-03-25 18:18:59 UTC
Description of problem:
qt fails to build with recent gcc.  If fails with:

/builddir/build/BUILD/qt-x11-opensource-src-4.5.0/src/corelib/global/qlibraryinfo.cpp:573: undefined reference to `boilerplate'

This is because on ia64 boilerplate is used by some inline asm code and it appears gcc is optimizing the symbol out so it is not available to the assembler.

I am attaching a simple patch that resolves this.



Version-Release number of selected component (if applicable):
qt4-4.5.0-9


How reproducible:


Steps to Reproduce:
1.
2.
3.
  
Actual results:


Expected results:


Additional info:

Comment 1 Rex Dieter 2009-03-28 16:21:53 UTC
Thanks, but I don't see any patch here.

Comment 2 Doug Chapman 2009-03-30 15:49:30 UTC
Created attachment 337226 [details]
patch to fix build on ia64

Oops, guess I forgot to attach this when I filed it.

Comment 3 Rex Dieter 2009-03-30 16:03:56 UTC
I'm ok with including this at least temporarily until gcc is fixed (my understanding is this patch is simply to workaround a gcc bug, right?).

Anyway, if not done so already, please file an issue against gcc, so we'll know when we can drop the workaround.

Comment 4 Doug Chapman 2009-03-30 16:40:43 UTC
I don't think this is a gcc bug.  The real problem is the inline asm code included in qt.  I think it is perfectly valid for gcc to optimize those values out in this case.  Technically it is the inline asm code in qt for ia64 that is breaking the rules by hard coding "boilerplate" into it instead of having that passed as a paramter (as in the x86 asm code).  What we probably should do is re-write the asm code but that is way beyond me.  I can try to find an ia64 expert to re-write that and provide a new patch.

In the meantime since qt is needed by so many other packages I would appreciate it if we could pull in this patch for now at least.

thanks,

- Doug

Comment 5 Kevin Kofler 2009-03-30 19:16:43 UTC
Why don't you use __attribute__((used)) instead of pessimizing the string into a non-constant one?

Comment 6 Bug Zapper 2009-06-09 12:37:43 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 11 development cycle.
Changing version to '11'.

More information and reason for this action is here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

Comment 7 Than Ngo 2009-09-08 11:22:55 UTC
it's fixed in qt-4.5.2