Bug 106004
Summary: | build fails - MathExtras.h on Solaris using gcc | ||
---|---|---|---|
Product: | WebKit | Reporter: | richard |
Component: | WebKitGTK | Assignee: | Nobody <webkit-unassigned> |
Status: | UNCONFIRMED | ||
Severity: | Blocker | CC: | berto, bugs-noreply |
Priority: | P2 | ||
Version: | 528+ (Nightly build) | ||
Hardware: | Other | ||
OS: | Other |
richard
reference https://bugs.webkit.org/show_bug.cgi?id=41953
and http://article.gmane.org/gmane.os.opendarwin.webkit.gtk/1317
When building on solaris with gcc (4.7.x), e.g. using pkgsrc, the build will fail with the following:
GEN DerivedSources/JavaScriptCore/LLIntDesiredOffsets.h
offlineasm: Parsing ./Source/JavaScriptCore/llint/LowLevelInterpreter.asm and creating offset extractor DerivedSources/JavaScriptCore/LLIntDesiredOffsets.h.
offlineasm: Including file ./Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
offlineasm: Including file ./Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
offlineasm: offset extractor DerivedSources/JavaScriptCore/LLIntDesiredOffsets.h successfully generated.
CXX Source/JavaScriptCore/llint/Programs_LLIntOffsetsExtractor-LLIntOffsetsExtractor.o
In file included from ./Source/JavaScriptCore/runtime/JSValue.h:33:0,
from ./Source/JavaScriptCore/runtime/CachedTranscendentalFunction.h:29,
from ./Source/JavaScriptCore/runtime/JSGlobalData.h:32,
from ./Source/JavaScriptCore/interpreter/CallFrame.h:27,
from ./Source/JavaScriptCore/runtime/ArgList.h:25,
from ./Source/JavaScriptCore/runtime/JSObject.h:26,
from ./Source/JavaScriptCore/runtime/JSArray.h:24,
from ./Source/JavaScriptCore/bytecode/ArrayProfile.h:29,
from Source/JavaScriptCore/llint/LLIntOffsetsExtractor.cpp:28:
./Source/WTF/wtf/MathExtras.h: In function 'void doubleToInteger(double, long long unsigned int&)':
./Source/WTF/wtf/MathExtras.h:349:16: error: 'isnan' was not declared in this scope
./Source/WTF/wtf/MathExtras.h:349:16: note: suggested alternative:
In file included from ./Source/WTF/wtf/MathExtras.h:30:0,
from ./Source/JavaScriptCore/runtime/JSValue.h:33,
from ./Source/JavaScriptCore/runtime/CachedTranscendentalFunction.h:29,
from ./Source/JavaScriptCore/runtime/JSGlobalData.h:32,
from ./Source/JavaScriptCore/interpreter/CallFrame.h:27,
from ./Source/JavaScriptCore/runtime/ArgList.h:25,
from ./Source/JavaScriptCore/runtime/JSObject.h:26,
from ./Source/JavaScriptCore/runtime/JSArray.h:24,
from ./Source/JavaScriptCore/bytecode/ArrayProfile.h:29,
from Source/JavaScriptCore/llint/LLIntOffsetsExtractor.cpp:28:
/opt/pkg/gcc47/include/c++/cmath:839:5: note: 'std::isnan'
gmake: *** [Source/JavaScriptCore/llint/Programs_LLIntOffsetsExtractor-LLIntOffsetsExtractor.o] Error 1
*** Error code 2
Stop.
bmake: stopped in /home/richard/src/pkgsrc/www/webkit-gtk3
*** Error code 1
Stop.
bmake: stopped in /home/richard/src/pkgsrc/www/webkit-gtk3
After finding the previous bug referenced above, I notice that the solaris check is inappropriate as implemented.
SunStudio defines __SUNPRO_CC... so this check should be added in addition to the solaris check.
Here is my patch (using 1.10.2 source kit):
diff --git a/www/webkit-gtk/patches/patch-Source_WTF_wtf_MathExtras.h
b/www/webkit-gtk/patches/patch-Source_WTF_wtf_MathExtras.h
new file mode 100644
index 0000000..7ab4e16
--- /dev/null
+++ b/www/webkit-gtk/patches/patch-Source_WTF_wtf_MathExtras.h
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- Source/WTF/wtf/MathExtras.h.orig 2012-11-23 20:12:16.000000000 +0000
++++ Source/WTF/wtf/MathExtras.h
+@@ -288,7 +288,7 @@ inline bool isWithinIntRange(float x)
+ return x > static_cast<float>(std::numeric_limits<int>::min()) &&
x < static_cast<float>(std::numeric_limits<int>::max());
+ }
+
+-#if !COMPILER(MSVC) && !COMPILER(RVCT) && !OS(SOLARIS)
++#if !COMPILER(MSVC) && !COMPILER(RVCT) && !(OS(SOLARIS) &&
defined(__SUNPRO_CC))
+ using std::isfinite;
+ #if !COMPILER_QUIRK(GCC11_GLOBAL_ISINF_ISNAN)
+ using std::isinf;
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Alberto Garcia
This code changed a bit since http://trac.webkit.org/changeset/143232
Is this problem still there? If so, can you post a new patch? Thanks!