Bug 14974
Summary: | Build failure on PPC Linux | ||
---|---|---|---|
Product: | WebKit | Reporter: | Mike Hommey <mh+webkit> |
Component: | JavaScriptCore | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED DUPLICATE | ||
Severity: | Normal | CC: | ddkilzer, mrowe |
Priority: | P2 | ||
Version: | 523.x (Safari 3) | ||
Hardware: | Mac (PowerPC) | ||
OS: | Linux |
Mike Hommey
The assembly in JavaScriptCore/wtf/TCSpinLock.h fails to build on PPC with the following error message:
g++ -c -g -O2 -Wall -D_REENTRANT -I/usr/include -g -Wall -W -DQT_SHARED -DBUILDING_GDK__ -I/usr/share/qt4/mkspecs/linux-g++ -I../../../JavaScriptCore/kjs -I../../../JavaScriptCore -I../../../JavaScriptCore/kjs -I../../../JavaScriptCore/bindings -I../../../JavaScriptCore/bindings/c -I../../../JavaScriptCore/wtf -Itmp -I../../../JavaScriptCore -I../../../JavaScriptCore/kjs -I../../../JavaScriptCore/bindings -I../../../JavaScriptCore/bindings/c -I../../../JavaScriptCore/wtf -I../../../JavaScriptCore/pcre -Itmp -I../../../JavaScriptCore/kjs -I. -o TCSystemAlloc.o ../../../JavaScriptCore/wtf/TCSystemAlloc.cpp
../../../JavaScriptCore/wtf/TCSpinLock.h: In function 'void* TCMalloc_SystemAlloc(size_t, size_t)':
../../../JavaScriptCore/wtf/TCSpinLock.h:98: error: 'asm' operand requires impossible reload
The toolchain in use is :
gcc 4.1.3 20070812 (prerelease) (Debian 4.1.2-15)
glibc 2.6.1
and binutils 2.17cvs20070804
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Mark Rowe (bdash)
Patches are welcome. The code in TCSpinLock.h compiles under GCC 4.0 on PowerPC Mac OS X. A simple workaround would be to use the pthread version of TCMalloc_SpinLock rather than the custom assembly version.
Mike Hommey
After further investigation, it is likely a regression in g++. It builds with -O0, and builds at -O2 with g++-4.0. Maybe you should give a try building with g++-4.1 or 4.2 on OSX, it may also fail.
Mark Rowe (bdash)
Mac OS X only ships with GCC 4.0.1. Mainline GCC does not support many of the features that Apple has added and which are possibly used by the Mac port, so it is not particularly easy to test with other versions.
David Kilzer (:ddkilzer)
*** This bug has been marked as a duplicate of 14521 ***