Bug 111817 - Source/ThirdParty/leveldb/db/builder.cc does not build on systems without <endian.h>
Summary: Source/ThirdParty/leveldb/db/builder.cc does not build on systems without <en...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKitGTK (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Martin Robinson
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-03-07 20:45 PST by Jeremy Huddleston Sequoia
Modified: 2013-03-21 07:58 PDT (History)
4 users (show)

See Also:


Attachments
config.log (74.56 KB, text/plain)
2013-03-07 22:34 PST, Jeremy Huddleston Sequoia
no flags Details
Patch (4.44 KB, patch)
2013-03-20 16:37 PDT, Martin Robinson
no flags Details | Formatted Diff | Diff
Patch (4.30 KB, patch)
2013-03-20 16:41 PDT, Martin Robinson
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jeremy Huddleston Sequoia 2013-03-07 20:45:10 PST
1.11.4 built fine on OS X, but 1.11.91 fails due to:

libtool: compile:  /usr/bin/clang++ -DHAVE_CONFIG_H -I. -DBUILDING_WebCore -DBUILDING_WEBKIT -Wall -W -Wcast-align -Wchar-subscripts -Wreturn-type -Wformat -Wformat-security -Wno-format-y2k -Wundef -Wmissing-format-attribute -Wpointer-arith -Wwrite-strings -Wno-unused-parameter -Wno-parentheses -fno-exceptions -DBUILDING_CAIRO__ -DBUILDING_GTK__ -I./Source/ThirdParty/ANGLE/src -I./Source/ThirdParty/ANGLE/include -I./Source/ThirdParty/ANGLE/include/GLSLANG -I./Source/ThirdParty/ANGLE/include/KHR -I./Source/WebCore -I./Source/WebCore/Modules/filesystem -I./Source/WebCore/Modules/gamepad -I./Source/WebCore/Modules/geolocation -I./Source/WebCore/Modules/indexeddb -I./Source/WebCore/Modules/mediasource -I./Source/WebCore/Modules/mediastream -I./Source/WebCore/Modules/navigatorcontentutils -I./Source/WebCore/Modules/notifications -I./Source/WebCore/Modules/proximity -I./Source/WebCore/Modules/quota -I./Source/WebCore/Modules/webaudio -I./Source/WebCore/Modules/webdatabase -I./Source/WebCore/Modules/websockets -I./Source/WebCore/accessibility -I./Source/WebCore/bindings -I./Source/WebCore/bindings/generic -I./Source/WebCore/bindings/js -I./Source/WebCore/bridge -I./Source/WebCore/bridge/c -I./Source/WebCore/bridge/jsc -I./Source/WebCore/css -I./Source/WebCore/dom -I./Source/WebCore/dom/default -I./Source/WebCore/editing -I./Source/WebCore/fileapi -I./Source/WebCore/history -I./Source/WebCore/html -I./Source/WebCore/html/canvas -I./Source/WebCore/html/parser -I./Source/WebCore/html/shadow -I./Source/WebCore/html/track -I./Source/WebCore/inspector -I./Source/WebCore/loader -I./Source/WebCore/loader/appcache -I./Source/WebCore/loader/archive -I./Source/WebCore/loader/archive/mhtml -I./Source/WebCore/loader/cache -I./Source/WebCore/loader/icon -I./Source/WebCore/mathml -I./Source/WebCore/page -I./Source/WebCore/page/animation -I./Source/WebCore/page/scrolling -I./Source/WebCore/platform -I./Source/WebCore/platform/animation -I./Source/WebCore/platform/audio -I./Source/WebCore/platform/graphics -I./Source/WebCore/platform/graphics/cpu/arm -I./Source/WebCore/platform/graphics/cpu/arm/filters/ -I./Source/WebCore/platform/graphics/filters -I./Source/WebCore/platform/graphics/filters/texmap -I./Source/WebCore/platform/graphics/freetype -I./Source/WebCore/platform/graphics/gpu -I./Source/WebCore/platform/graphics/harfbuzz -I./Source/WebCore/platform/graphics/harfbuzz/ng -I./Source/WebCore/platform/graphics/opengl -I./Source/WebCore/platform/graphics/opentype -I./Source/WebCore/platform/graphics/transforms -I./Source/WebCore/platform/image-decoders -I./Source/WebCore/platform/image-decoders/bmp -I./Source/WebCore/platform/image-decoders/gif -I./Source/WebCore/platform/image-decoders/ico -I./Source/WebCore/platform/image-decoders/jpeg -I./Source/WebCore/platform/image-decoders/png -I./Source/WebCore/platform/image-decoders/webp -I./Source/WebCore/platform/leveldb -I./Source/WebCore/platform/linux -I./Source/WebCore/platform/mediastream -I./Source/WebCore/platform/mediastream/gstreamer -I./Source/WebCore/platform/mock -I./Source/WebCore/platform/network -I./Source/WebCore/platform/network/gtk -I./Source/WebCore/platform/sql -I./Source/WebCore/platform/text -I./Source/WebCore/platform/text/transcoder -I./Source/WebCore/platform/win -I./Source/WebCore/plugins -I./Source/WebCore/plugins/win -I./Source/WebCore/rendering -I./Source/WebCore/rendering/mathml -I./Source/WebCore/rendering/style -I./Source/WebCore/rendering/svg -I./Source/WebCore/storage -I./Source/WebCore/svg -I./Source/WebCore/svg/animation -I./Source/WebCore/svg/graphics -I./Source/WebCore/svg/graphics/filters -I./Source/WebCore/svg/properties -I./Source/WebCore/testing -I./Source/WebCore/testing/js -I./Source/WebCore/websockets -I./Source/WebCore/workers -I./Source/WebCore/xml -I./Source/WebCore/xml/parser -I./WebCore/bindings/js -I./DerivedSources/WebCore -I./DerivedSources -I./DerivedSources/JavaScriptCore -DDATA_DIR=\"/opt/local/share\" -I./Source/WebCore/platform/graphics/texmap -DWTF_USE_LEVELDB=1 -I./Source/ThirdParty/leveldb -I./Source/ThirdParty/leveldb/include -DENABLE_3D_RENDERING=1 -DENABLE_ACCELERATED_2D_CANVAS=0 -DENABLE_BATTERY_STATUS=0 -DENABLE_BLOB=1 -DENABLE_CANVAS_PATH=1 -DENABLE_CANVAS_PROXY=0 -DENABLE_CHANNEL_MESSAGING=1 -DENABLE_CSP_NEXT=1 -DENABLE_CSS3_TEXT=1 -DENABLE_CSS_BOX_DECORATION_BREAK=1 -DENABLE_CSS_COMPOSITING=0 -DENABLE_CSS_DEVICE_ADAPTATION=0 -DENABLE_CSS_EXCLUSIONS=1 -DENABLE_CSS_FILTERS=1 -DENABLE_CSS_IMAGE_ORIENTATION=1 -DENABLE_CSS_IMAGE_RESOLUTION=1 -DENABLE_CSS_IMAGE_SET=1 -DENABLE_CSS_REGIONS=1 -DENABLE_CSS_SHADERS=1 -DENABLE_CSS_STICKY_POSITION=1 -DENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED=1 -DENABLE_CSS_VARIABLES=1 -DENABLE_CSS3_CONDITIONAL_RULES=0 -DENABLE_CUSTOM_SCHEME_HANDLER=0 -DENABLE_DASHBOARD_SUPPORT=0 -DENABLE_DATALIST_ELEMENT=0 -DENABLE_DATA_TRANSFER_ITEMS=0 -DENABLE_DETAILS_ELEMENT=1 -DENABLE_DEVICE_ORIENTATION=0 -DENABLE_DIALOG_ELEMENT=0 -DENABLE_DIRECTORY_UPLOAD=0 -DENABLE_DOM4_EVENTS_CONSTRUCTOR=1 -DENABLE_DOWNLOAD_ATTRIBUTE=0 -DENABLE_FILE_SYSTEM=0 -DENABLE_FILTERS=1 -DENABLE_FTPDIR=1 -DENABLE_FULLSCREEN_API=1 -DENABLE_GAMEPAD=0 -DENABLE_GEOLOCATION=1 -DENABLE_HIGH_DPI_CANVAS=0 -DENABLE_ICONDATABASE=1 -DENABLE_IFRAME_SEAMLESS=1 -DENABLE_INDEXED_DATABASE=1 -DENABLE_INPUT_SPEECH=0 -DENABLE_INPUT_TYPE_COLOR=0 -DENABLE_INPUT_TYPE_DATE=0 -DENABLE_INPUT_TYPE_DATETIME=0 -DENABLE_INPUT_TYPE_DATETIMELOCAL=0 -DENABLE_INPUT_TYPE_MONTH=0 -DENABLE_INPUT_TYPE_TIME=0 -DENABLE_INPUT_TYPE_WEEK=0 -DENABLE_INSPECTOR=1 -DENABLE_JAVASCRIPT_DEBUGGER=1 -DENABLE_LEGACY_CSS_VENDOR_PREFIXES=0 -DENABLE_LEGACY_NOTIFICATIONS=0 -DENABLE_LEGACY_VENDOR_PREFIXES=1 -DENABLE_LEGACY_WEB_AUDIO=1 -DENABLE_LINK_PREFETCH=1 -DENABLE_LINK_PRERENDER=0 -DENABLE_MATHML=1 -DENABLE_MEDIA_CAPTURE=0 -DENABLE_MEDIA_SOURCE=0 -DENABLE_MEDIA_STATISTICS=0 -DENABLE_MEDIA_STREAM=0 -DENABLE_METER_ELEMENT=1 -DENABLE_MHTML=1 -DENABLE_MICRODATA=1 -DENABLE_MOUSE_CURSOR_SCALE=0 -DENABLE_NAVIGATOR_CONTENT_UTILS=0 -DENABLE_NETSCAPE_PLUGIN_API=1 -DENABLE_NETWORK_INFO=0 -DENABLE_NOTIFICATIONS=0 -DENABLE_ORIENTATION_EVENTS=0 -DENABLE_PAGE_VISIBILITY_API=0 -DENABLE_PERFORMANCE_TIMELINE=1 -DENABLE_PROGRESS_ELEMENT=1 -DENABLE_PROXIMITY_EVENTS=0 -DENABLE_QUOTA=0 -DENABLE_RESOURCE_TIMING=1 -DENABLE_REQUEST_ANIMATION_FRAME=1 -DENABLE_SCRIPTED_SPEECH=0 -DENABLE_SHADOW_DOM=1 -DENABLE_SHARED_WORKERS=1 -DENABLE_SMOOTH_SCROLLING=1 -DENABLE_SPELLCHECK=1 -DENABLE_SQL_DATABASE=1 -DENABLE_STYLE_SCOPED=1 -DENABLE_SVG=1 -DENABLE_SVG_DOM_OBJC_BINDINGS=0 -DENABLE_SVG_FONTS=1 -DENABLE_TEMPLATE_ELEMENT=1 -DENABLE_TEXT_AUTOSIZING=0 -DENABLE_TOUCH_EVENTS=0 -DENABLE_TOUCH_ICON_LOADING=0 -DENABLE_USER_TIMING=1 -DENABLE_VIBRATION=0 -DENABLE_VIDEO=1 -DENABLE_VIDEO_TRACK=1 -DENABLE_WEBGL=1 -DENABLE_WEB_AUDIO=0 -DENABLE_WEB_SOCKETS=1 -DENABLE_WEB_TIMING=1 -DENABLE_WORKERS=1 -DENABLE_XHR_TIMEOUT=1 -DENABLE_XSLT=1 -DWEBKITGTK_API_VERSION_STRING=\"1.0\" -I./Source/WebCore/accessibility/atk -I./Source/WebCore/loader/gtk -I./Source/WebCore/page/gtk -I./Source/WebCore/platform/cairo -I./Source/WebCore/platform/audio/gstreamer -I./Source/WebCore/platform/geoclue -I./Source/WebCore/platform/graphics/cairo -I./Source/WebCore/platform/graphics/freetype -I./Source/WebCore/platform/graphics/glx -I./Source/WebCore/platform/graphics/harfbuzz -I./Source/WebCore/platform/graphics/harfbuzz/ng -I./Source/WebCore/platform/graphics/egl -I./Source/WebCore/platform/graphics/gstreamer -I./Source/WebCore/platform/graphics/gtk -I./Source/WebCore/platform/gtk -I./Source/WebCore/platform/network/soup -I./Source/WebCore/platform/text/enchant -I./Source -I./Source/JavaScriptCore -I./Source/JavaScriptCore/API -I./Source/JavaScriptCore/assembler -I./Source/JavaScriptCore/bytecode -I./Source/JavaScriptCore/bytecompiler -I./Source/JavaScriptCore/dfg -I./Source/JavaScriptCore/disassembler -I./Source/JavaScriptCore/heap -I./Source/JavaScriptCore/debugger -I./Source/JavaScriptCore/ForwardingHeaders -I./Source/JavaScriptCore/interpreter -I./Source/JavaScriptCore/jit -I./Source/JavaScriptCore/jit -I./Source/JavaScriptCore/llint -I./Source/JavaScriptCore/parser -I./Source/JavaScriptCore/profiler -I./Source/JavaScriptCore/runtime -I./Source/JavaScriptCore/tools -I./Source/JavaScriptCore/yarr -I./DerivedSources/JavaScriptCore -I./Source/WTF -fno-strict-aliasing -I/opt/local/include/cairo -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include -I/opt/local/include/pixman-1 -I/opt/local/include/freetype2 -I/opt/local/include/libpng15 -D_REENTRANT -I/opt/local/include/enchant -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include -I/opt/local/include/cairo -I/opt/local/include/freetype2 -I/opt/local/include -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include/pixman-1 -I/opt/local/include/libpng15 -I/opt/local/include/harfbuzz -D_REENTRANT -I/opt/local/include/gail-1.0 -I/opt/local/include/atk-1.0 -I/opt/local/include/gtk-2.0 -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include -I/opt/local/lib/gtk-2.0/include -I/opt/local/include/cairo -I/opt/local/include/gdk-pixbuf-2.0 -I/opt/local/include/pango-1.0 -I/opt/local/include/gio-unix-2.0/ -I/opt/local/include/pixman-1 -I/opt/local/include/freetype2 -I/opt/local/include/libpng15 -I/opt/local/include/harfbuzz -I/opt/local/include -I/opt/local/include/dbus-1.0 -I/opt/local/include/libxml2 -I/opt/local/lib/dbus-1.0/include -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -D_REENTRANT -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include -D_REENTRANT -I/opt/local/include/gstreamer-1.0 -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include -D_REENTRANT -I/opt/local/include/gtk-2.0 -I/opt/local/lib/gtk-2.0/include -I/opt/local/include/atk-1.0 -I/opt/local/include/cairo -I/opt/local/include/gdk-pixbuf-2.0 -I/opt/local/include/pango-1.0 -I/opt/local/include/gio-unix-2.0/ -I/opt/local/include -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include/pixman-1 -I/opt/local/include/freetype2 -I/opt/local/include/libpng15 -I/opt/local/include/harfbuzz -D_REENTRANT -I/opt/local/include/libsecret-1 -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include -D_REENTRANT -I/opt/local/include/libsoup-2.4 -I/opt/local/include/libxml2 -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include -I/opt/local/include/libxml2 -I/opt/local/include -I/opt/local/include/libxml2 -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -DGTEST_USE_OWN_TR1_TUPLE=1 -fvisibility-inlines-hidden -fno-rtti -pipe -Os -Wno-c++11-extensions -arch x86_64 -O2 -MT Source/WebCore/plugins/gtk/libWebCoreGtk_la-PluginViewGtk.lo -MD -MP -MF Source/WebCore/plugins/gtk/.deps/libWebCoreGtk_la-PluginViewGtk.Tpo -c Source/WebCore/plugins/gtk/PluginViewGtk.cpp  -fno-common -DPIC -o Source/WebCore/plugins/gtk/.libs/libWebCoreGtk_la-PluginViewGtk.o
In file included from Source/ThirdParty/leveldb/db/builder.cc:7:
In file included from ./Source/ThirdParty/leveldb/db/filename.h:14:
In file included from ./Source/ThirdParty/leveldb/port/port.h:14:
./Source/ThirdParty/leveldb/port/port_posix.h:41:12: fatal error: 'endian.h' file not found
  #include <endian.h>
           ^
Comment 1 Jeremy Huddleston Sequoia 2013-03-07 20:46:54 PST
It looks like OS_MACOSX is undefined for some reason...
Comment 2 Jeremy Huddleston Sequoia 2013-03-07 20:49:10 PST
And sorry, the leading compilation line is from the wrong one due to a parallel build...

It looks like the problem is that Source/ThirdParty/leveldb/db/builder.cc doesn't include the config.h file, so you always fall through to the else case of including <endian.h>
Comment 3 Jeremy Huddleston Sequoia 2013-03-07 20:55:41 PST
Actually, it looks like OS_MACOSX isn't really a valid preprocessor macro ... I was getting confused with the WTF_ prefixed macros ... in any event, I'm working around this by just defining OS_MACOSX, but this should be fixed in a portable way.
Comment 4 Martin Robinson 2013-03-07 21:39:35 PST
(In reply to comment #3)
> Actually, it looks like OS_MACOSX isn't really a valid preprocessor macro ... I was getting confused with the WTF_ prefixed macros ... in any event, I'm working around this by just defining OS_MACOSX, but this should be fixed in a portable way.

This seems to be a valid issue with the LevelDB build for WebKitGTK+, but LevelDB shouldn't be enabled unless indexed database is enabled. It seems that indexed database is enabled for your build so there's another bug here too, since it shouldn't be enabled for release builds.
Comment 5 Martin Robinson 2013-03-07 22:23:14 PST
(In reply to comment #3)
> Actually, it looks like OS_MACOSX isn't really a valid preprocessor macro ... I was getting confused with the WTF_ prefixed macros ... in any event, I'm working around this by just defining OS_MACOSX, but this should be fixed in a portable way.

Yes, it's likely that we just need to add OS_MACOSX for Mac builds. I'm still a bit surprised that indexed database is enabled for your build. There's no way to turn it on via configure. Did you have some previous configuration hanging around?
Comment 6 Jeremy Huddleston Sequoia 2013-03-07 22:33:53 PST
(In reply to comment #5)
> (In reply to comment #3)
> > Actually, it looks like OS_MACOSX isn't really a valid preprocessor macro ... I was getting confused with the WTF_ prefixed macros ... in any event, I'm working around this by just defining OS_MACOSX, but this should be fixed in a portable way.
> 
> Yes, it's likely that we just need to add OS_MACOSX for Mac builds. I'm still a bit surprised that indexed database is enabled for your build. There's no way to turn it on via configure. Did you have some previous configuration hanging around?

No, this is from completely clean.  I'll attach config.log for:

./configure --prefix=/opt/local --with-gtk=2.0 --disable-webkit2 --disable-introspection --enable-svg --enable-geolocation --enable-webgl --enable-video
Comment 7 Jeremy Huddleston Sequoia 2013-03-07 22:34:25 PST
Created attachment 192147 [details]
config.log
Comment 8 Jeremy Huddleston Sequoia 2013-03-07 22:38:48 PST
# For the moment we need to check whether or not indexed database is
# enabled because it determines if we build leveldb or not.
AM_WEBKIT_FEATURE_CONDITIONAL([ENABLE_INDEXED_DATABASE])

That just seems to grep for it in Source/WebCore/GNUmakefile.features.am and sure enough that file has ENABLE_INDEXED_DATABASE=1
Comment 9 Jeremy Huddleston Sequoia 2013-03-07 22:39:26 PST
So it seems like ENABLE_INDEXED_DATABASE is just enabled everywhere...
Comment 10 Martin Robinson 2013-03-14 16:56:52 PDT
(In reply to comment #9)
> So it seems like ENABLE_INDEXED_DATABASE is just enabled everywhere...

This seems to have been an issue with a stale feature profile in the unstable release. We've fixed that, so it shouldn't be an issue. We still need to fix the OS X build of leveldb though.
Comment 11 Martin Robinson 2013-03-20 16:37:32 PDT
Created attachment 194143 [details]
Patch
Comment 12 Martin Robinson 2013-03-20 16:41:21 PDT
Jeremy, perhaps you could verify the patch I posted works on your system?
Comment 13 Martin Robinson 2013-03-20 16:41:42 PDT
Created attachment 194144 [details]
Patch
Comment 14 WebKit Review Bot 2013-03-21 07:58:37 PDT
Comment on attachment 194144 [details]
Patch

Clearing flags on attachment: 194144

Committed r146468: <http://trac.webkit.org/changeset/146468>
Comment 15 WebKit Review Bot 2013-03-21 07:58:41 PDT
All reviewed patches have been landed.  Closing bug.