Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.

Bug 979687

Summary: gperftools is FTBFS on ARM
Product: [Fedora] Fedora Reporter: Peter Robinson <pbrobinson>
Component: gperftoolsAssignee: Tom "spot" Callaway <tcallawa>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: blc, kevin, mrunge, tcallawa, tdawson
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: gperftools-2.1-1.fc19 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-08-11 18:28:33 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:
Bug Depends On:    
Bug Blocks: 245418, 990602    

Description Peter Robinson 2013-06-29 12:04:31 UTC
The latest update for gperftools ARM fixes introduces some atomics issues on ARM causing FTBFS
- update to svn r218 (cleanups, some ARM fixes)

http://arm.koji.fedoraproject.org/koji/taskinfo?taskID=1946793


libtool: link: g++ -DNO_TCMALLOC_SAMPLES -O2 -g -pipe -Wall -fexceptions -fstack-protector --param=ssp-buffer-size=4 -grecord-gcc-switches -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard -fno-strict-aliasing -Wno-unused-local-typedefs -DTCMALLOC_LARGE_PAGES -Wl,-z -Wl,relro -o low_level_alloc_unittest low_level_alloc_unittest-low_level_alloc.o low_level_alloc_unittest-malloc_hook.o low_level_alloc_unittest-maybe_threads.o low_level_alloc_unittest-low_level_alloc_unittest.o  ./.libs/libspinlock.a ./.libs/libsysinfo.a ./.libs/liblogging.a
g++ -DHAVE_CONFIG_H -I. -I./src  -I./src   -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare -fno-builtin-malloc -fno-builtin-free -fno-builtin-realloc -fno-builtin-calloc -fno-builtin-cfree -fno-builtin-memalign -fno-builtin-posix_memalign -fno-builtin-valloc -fno-builtin-pvalloc  -Wno-unused-result   -O2 -g -pipe -Wall  -fexceptions -fstack-protector --param=ssp-buffer-size=4 -grecord-gcc-switches -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard -fno-strict-aliasing -Wno-unused-local-typedefs -DTCMALLOC_LARGE_PAGES -c -o atomicops_unittest.o `test -f 'src/tests/atomicops_unittest.cc' || echo './'`src/tests/atomicops_unittest.cc
src/tests/atomicops_unittest.cc: In instantiation of 'void TestAtomicOps() [with AtomicType = int]':
src/tests/atomicops_unittest.cc:252:29:   required from here
src/tests/atomicops_unittest.cc:235:70: error: no matching function for call to 'TestAtomicExchange(<unresolved overloaded function type>)'
   TestAtomicExchange<AtomicType>(base::subtle::Release_AtomicExchange);
                                                                      ^
src/tests/atomicops_unittest.cc:235:70: note: candidate is:
src/tests/atomicops_unittest.cc:139:13: note: template<class AtomicType> void TestAtomicExchange(AtomicType (*)(volatile AtomicType*, AtomicType))
 static void TestAtomicExchange(AtomicType (*atomic_exchange_func)
             ^
src/tests/atomicops_unittest.cc:139:13: note:   template argument deduction/substitution failed:
src/tests/atomicops_unittest.cc:235:70: note:   cannot convert 'base::subtle::Release_AtomicExchange' (type '<unresolved overloaded function type>') to type 'int (*)(volatile int*, int)'
   TestAtomicExchange<AtomicType>(base::subtle::Release_AtomicExchange);
                                                                      ^
make: *** [atomicops_unittest.o] Error 1

Comment 1 Tom "spot" Callaway 2013-07-10 21:43:20 UTC
Just looking at this error, I have no idea.

Comment 2 Brendan Conoboy 2013-07-17 23:26:56 UTC
I don't speak C++, but I can tell you reverting the patch between r193 and r194 solves this particular build failure.

There is something about how the implementation or the testing of the atomic functions was done that means this succeeds:

TestAtomicExchange<AtomicType>(base::subtle::Acquire_AtomicExchange);

But this fails:

TestAtomicExchange<AtomicType>(base::subtle::Release_AtomicExchange);

Somebody fluent in C++ should be able to knock this out very easily, we are evidently missing some simple definition, or calling it wrong.

Comment 3 Tom "spot" Callaway 2013-07-31 14:50:43 UTC
*** Bug 990617 has been marked as a duplicate of this bug. ***

Comment 4 Fedora Update System 2013-07-31 16:09:30 UTC
gperftools-2.1-1.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/gperftools-2.1-1.fc19

Comment 5 Fedora Update System 2013-08-02 21:52:22 UTC
Package gperftools-2.1-1.fc19:
* should fix your issue,
* was pushed to the Fedora 19 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing gperftools-2.1-1.fc19'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2013-14082/gperftools-2.1-1.fc19
then log in and leave karma (feedback).

Comment 6 Fedora Update System 2013-08-11 18:28:33 UTC
gperftools-2.1-1.fc19 has been pushed to the Fedora 19 stable repository.  If problems still persist, please make note of it in this bug report.