Bug 828946

Summary: hfsplus-tools FTBFS on ppc: clang: error: linker command failed with exit code 1
Product: [Fedora] Fedora Reporter: Karsten Hopp <karsten>
Component: llvmAssignee: Adam Jackson <ajax>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: 18CC: ajax, bos, dmalcolm, michel, will_schmidt
Target Milestone: ---   
Target Release: ---   
Hardware: ppc   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-02-05 11:59:44 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Karsten Hopp 2012-06-05 15:27:49 UTC
Description of problem:
hfsplus-tools-540.1.linux3-1.fc17 fails to build on PowerPC:

clang -g3  -fblocks -I/builddir/build/BUILD/diskdev_cmds-540.1.linux3/BlocksRunTime -I/builddir/build/BUILD/diskdev_cmds-540.1.linux3/include -DDEBUG_BUILD=0 -D_FILE_OFFSET_BITS=64 -D LINUX=1 -D BSD=1 -D VERSION=\"540.1.linux3\"   -c -o runtime.o runtime.c
/tmp/data-NDzdQB.s: Assembler messages:
/tmp/data-NDzdQB.s: Error: .size expression for _Block_copy_error does not evaluate to a constant
clang: error: assembler command failed with exit code 1 (use -v to see invocation)
make[1]: *** [data.o] Error 1
make[1]: *** Waiting for unfinished jobs....
/tmp/runtime-UX9tqB.s: Assembler messages:
/tmp/runtime-UX9tqB.s: Error: .size expression for _Block_use_GC does not evaluate to a constant
/tmp/runtime-UX9tqB.s: Error: .size expression for _Block_do_nothing does not evaluate to a constant
/tmp/runtime-UX9tqB.s: Error: .size expression for _Block_use_GC5 does not evaluate to a constant
/tmp/runtime-UX9tqB.s: Error: .size expression for _Block_memmove_gc_broken does not evaluate to a constant
/tmp/runtime-UX9tqB.s: Error: .size expression for _Block_assign_default does not evaluate to a constant
/tmp/runtime-UX9tqB.s: Error: .size expression for _Block_use_RR does not evaluate to a constant
/tmp/runtime-UX9tqB.s: Error: .size expression for _Block_copy does not evaluate to a constant
/tmp/runtime-UX9tqB.s: Error: .size expression for _Block_copy_internal does not evaluate to a constant
/tmp/runtime-UX9tqB.s: Error: .size expression for latching_incr_int does not evaluate to a constant
/tmp/runtime-UX9tqB.s: Error: .size expression for _Block_release does not evaluate to a constant
/tmp/runtime-UX9tqB.s: Error: .size expression for latching_decr_int does not evaluate to a constant
/tmp/runtime-UX9tqB.s: Error: .size expression for OSAtomicCompareAndSwapInt does not evaluate to a constant
/tmp/runtime-UX9tqB.s: Error: .size expression for _Block_copy_collectable does not evaluate to a constant
/tmp/runtime-UX9tqB.s: Error: .size expression for Block_size does not evaluate to a constant
/tmp/runtime-UX9tqB.s: Error: .size expression for _Block_object_assign does not evaluate to a constant
/tmp/runtime-UX9tqB.s: Error: .size expression for _Block_byref_assign_copy does not evaluate to a constant
/tmp/runtime-UX9tqB.s: Error: .size expression for _Block_object_dispose does not evaluate to a constant
/tmp/runtime-UX9tqB.s: Error: .size expression for _Block_byref_release does not evaluate to a constant
/tmp/runtime-UX9tqB.s: Error: .size expression for _Block_destroy does not evaluate to a constant
/tmp/runtime-UX9tqB.s: Error: .size expression for _Block_dump does not evaluate to a constant
/tmp/runtime-UX9tqB.s: Error: .size expression for _Block_byref_dump does not evaluate to a constant
/tmp/runtime-UX9tqB.s: Error: .size expression for _Block_memmove_default does not evaluate to a constant
/tmp/runtime-UX9tqB.s: Error: .size expression for _Block_assign_weak_default does not evaluate to a constant
/tmp/runtime-UX9tqB.s: Error: .size expression for _Block_release_object_default does not evaluate to a constant
/tmp/runtime-UX9tqB.s: Error: .size expression for _Block_retain_object_default does not evaluate to a constant
/tmp/runtime-UX9tqB.s: Error: .size expression for _Block_setHasRefcount_default does not evaluate to a constant
/tmp/runtime-UX9tqB.s: Error: .size expression for _Block_alloc_default does not evaluate to a constant
make[1]: Leaving directory `/builddir/build/BUILD/diskdev_cmds-540.1.linux3/BlocksRunTime'
clang: error: assembler command failed with exit code 1 (use -v to see invocation)
make[1]: *** [runtime.o] Error 1


Version-Release number of selected component (if applicable):
hfsplus-tools-540.1.linux3-1.fc17

How reproducible:


Steps to Reproduce:
1. ppc-koji build --scratch f17 hfsplus-tools-540.1.linux3-1.fc17.src.rpm
2.
3.
  
Actual results:
http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=578821

Expected results:


Additional info:
Latest successful hfsplus-tools built was hfsplus-tools-332.14-13.fc17

Comment 1 Adam Jackson 2012-06-07 19:24:03 UTC
Given that there's no literal assembly in that file, that's got to be a problem in the assembly clang generates.

Comment 2 Michel Lind 2012-06-08 02:53:09 UTC
That build uses g++ so it definitely looks like a problem specific to clang.

Could you try building it on Rawhide with LLVM/Clang 3.1? Given that C++ support is really broken with Clang 3.0 + GCC 4.7's libstdc++, it might be better to push an update - the Mesa maintainers seem to be OK with this and they're the most important users of LLVM right now.

Comment 3 Jens Petersen 2013-02-01 07:48:33 UTC
Still seems to be happening for f18.

Comment 5 Jens Petersen 2013-02-05 13:40:56 UTC
Well this:

:
/usr/bin/ld: cannot find crtbegin.o: No such file or directory
/usr/bin/ld: cannot find -lgcc
/usr/bin/ld: cannot find -lgcc_s
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Comment 6 Jens Petersen 2013-02-05 13:45:34 UTC
Actually seems to fail also on arm and s390 archs.

Comment 7 Will Schmidt 2013-02-07 18:43:17 UTC
A couple data points..   I believe this is a clang (or perhaps a clang+binutils issue) that has been fixed in newer clang releases.

I can see the reported errors on a F17 base,
   $ clang --version
   clang version 3.0 (tags/RELEASE_30/final)

$ rpmbuild -ba hfsplus-tools.spec
...
/tmp/cache-6Kmjpo.s: Error: .size expression for CacheRead does not evaluate to a constant
/tmp/cache-6Kmjpo.s: Error: .size expression for CacheLookup does not evaluate to a constant
...


An rpmbuild on F18 seemed to complete successfully against upstream/trunk clang 
  $ clang --version
  clang version 3.3 

$ rpmbuild -ba hfsplus-tools.spec
...
Wrote: /home/willschm/rpmbuild/SRPMS/hfsplus-tools-540.1.linux3-2.fc18.src.rpm
Wrote: /home/willschm/rpmbuild/RPMS/ppc64/hfsplus-tools-540.1.linux3-2.fc18.ppc64.rpm

I then installed the f18 clang, and that also seems to work. 
$ rpm -qa | grep clang
clang-3.1-12.fc18.ppc64

$ rpmbuild -ba hfsplus-tools.spec
...
Wrote: /home/willschm/rpmbuild/SRPMS/hfsplus-tools-540.1.linux3-2.fc18.src.rpm
Wrote: /home/willschm/rpmbuild/RPMS/ppc64/hfsplus-tools-540.1.linux3-2.fc18.ppc64.rpm

Comment 8 Fedora Admin XMLRPC Client 2013-02-27 15:11:20 UTC
This package has changed ownership in the Fedora Package Database.  Reassigning to the new owner of this component.

Comment 9 Fedora End Of Life 2013-12-21 08:37:55 UTC
This message is a reminder that Fedora 18 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 18. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as WONTFIX if it remains open with a Fedora 
'version' of '18'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version prior to Fedora 18's end of life.

Thank you for reporting this issue and we are sorry that we may not be 
able to fix it before Fedora 18 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior to Fedora 18's end of life.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 10 Fedora End Of Life 2014-02-05 11:59:49 UTC
Fedora 18 changed to end-of-life (EOL) status on 2014-01-14. Fedora 18 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.