<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>93842</bug_id>
          
          <creation_ts>2012-08-13 07:16:31 -0700</creation_ts>
          <short_desc>[Qt] QNX build fails due to missing timegm declaration</short_desc>
          <delta_ts>2012-08-17 03:23:28 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>74040</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Milian Wolff">milian.wolff</reporter>
          <assigned_to name="Milian Wolff">milian.wolff</assigned_to>
          <cc>anilsson</cc>
    
    <cc>hausmann</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>mxie</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>693632</commentid>
    <comment_count>0</comment_count>
    <who name="Milian Wolff">milian.wolff</who>
    <bug_when>2012-08-13 07:16:31 -0700</bug_when>
    <thetext>Trying to build QtWebKit QNX fails with the following error:

make -j1
makeobj[0]: Entering directory `/home/milian/projects/qt5/build-playbook/qtwebkit/Release&apos;
cd Source/WTF/ &amp;&amp; ( test -f Makefile.WTF || /home/milian/projects/qt5/install-playbook/bin/qmake /home/milian/projects/qt5/qtwebkit/Source/WTF/WTF.pro DEFINES+=ENABLE_3D_RENDERING=0 DEFINES+=ENABLE_WEBGL=0 INSTALL_LIBS=/home/milian/projects/qt5/build-playbook/../install-playbook/ CONFIG+=release CONFIG-=debug -o Makefile.WTF ) &amp;&amp; /usr/bin/make -f Makefile.WTF 
make[1]: Entering directory `/home/milian/projects/qt5/build-playbook/qtwebkit/Release/Source/WTF&apos;
qcc -Vgcc_ntoarmv7le -lang-c++ -c -fstack-protector -fstack-protector-all -Wno-psabi -O2 -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -D_REENTRANT -DQ_OS_BLACKBERRY -DENABLE_3D_RENDERING=0 -DENABLE_WEBGL=0 -DWTF_USE_ICU_UNICODE=1 -DHAVE_QRAWFONT=1 -DHAVE_FONTCONFIG=1 -DENABLE_XSLT=1 -DWTF_USE_ZLIB=1 -DWTF_USE_TILED_BACKING_STORE=1 -DENABLE_LEGACY_VIEWPORT_ADAPTION=1 -DPLUGIN_ARCHITECTURE_UNSUPPORTED=1 -DHAVE_QSTYLE=1 -DENABLE_FULLSCREEN_API=1 -DENABLE_ACCELERATED_2D_CANVAS=0 -DENABLE_ANIMATION_API=0 -DENABLE_BATTERY_STATUS=0 -DENABLE_BLOB=1 -DENABLE_CHANNEL_MESSAGING=1 -DENABLE_CSP_NEXT=0 -DENABLE_CSS_BOX_DECORATION_BREAK=1 -DENABLE_CSS_EXCLUSIONS=1 -DENABLE_CSS_FILTERS=1 -DENABLE_CSS_GRID_LAYOUT=0 -DENABLE_CSS_IMAGE_ORIENTATION=0 -DENABLE_CSS_IMAGE_RESOLUTION=0 -DENABLE_CSS_REGIONS=1 -DENABLE_CSS_SHADERS=0 -DENABLE_CSS_VARIABLES=0 -DENABLE_CSS3_FLEXBOX=1 -DENABLE_DASHBOARD_SUPPORT=0 -DENABLE_DATAGRID=0 -DENABLE_DATALIST_ELEMENT=1 -DENABLE_DATA_TRANSFER_ITEMS=0 -DENABLE_DETAILS_ELEMENT=1 -DENABLE_DEVICE_ORIENTATION=0 -DENABLE_DIRECTORY_UPLOAD=0 -DENABLE_DOWNLOAD_ATTRIBUTE=0 -DENABLE_FAST_MOBILE_SCROLLING=1 -DENABLE_FILE_SYSTEM=0 -DENABLE_FILTERS=1 -DENABLE_FTPDIR=1 -DENABLE_GAMEPAD=0 -DENABLE_GEOLOCATION=0 -DENABLE_GESTURE_EVENTS=1 -DENABLE_HIGH_DPI_CANVAS=0 -DENABLE_ICONDATABASE=1 -DENABLE_IFRAME_SEAMLESS=1 -DENABLE_INDEXED_DATABASE=0 -DENABLE_INPUT_SPEECH=0 -DENABLE_INPUT_TYPE_COLOR=1 -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_INSPECTOR_SERVER=1 -DENABLE_JAVASCRIPT_DEBUGGER=1 -DENABLE_LEGACY_CSS_VENDOR_PREFIXES=0 -DENABLE_LEGACY_NOTIFICATIONS=1 -DENABLE_LEGACY_WEBKIT_BLOB_BUILDER=1 -DENABLE_LINK_PREFETCH=0 -DENABLE_LINK_PRERENDER=0 -DENABLE_MATHML=0 -DENABLE_MEDIA_SOURCE=0 -DENABLE_MEDIA_STATISTICS=0 -DENABLE_MEDIA_STREAM=0 -DENABLE_METER_ELEMENT=1 -DENABLE_MHTML=0 -DENABLE_MICRODATA=0 -DENABLE_MUTATION_OBSERVERS=0 -DENABLE_NETSCAPE_PLUGIN_API=0 -DENABLE_NETWORK_INFO=0 -DENABLE_NOTIFICATIONS=1 -DENABLE_ORIENTATION_EVENTS=0 -DENABLE_PAGE_VISIBILITY_API=1 -DENABLE_PROGRESS_ELEMENT=1 -DENABLE_QUOTA=0 -DENABLE_REGISTER_PROTOCOL_HANDLER=0 -DENABLE_REQUEST_ANIMATION_FRAME=1 -DENABLE_SCRIPTED_SPEECH=0 -DENABLE_SHADOW_DOM=0 -DENABLE_SHARED_WORKERS=1 -DENABLE_SQL_DATABASE=1 -DENABLE_STYLE_SCOPED=0 -DENABLE_SVG=1 -DENABLE_SVG_DOM_OBJC_BINDINGS=0 -DENABLE_SVG_FONTS=1 -DENABLE_TEXT_AUTOSIZING=0 -DENABLE_TEXT_NOTIFICATIONS_ONLY=0 -DENABLE_TOUCH_ADJUSTMENT=1 -DENABLE_TOUCH_EVENTS=1 -DENABLE_TOUCH_ICON_LOADING=0 -DENABLE_UNDO_MANAGER=0 -DENABLE_VIBRATION=0 -DENABLE_VIDEO=0 -DENABLE_VIDEO_TRACK=0 -DENABLE_WEB_AUDIO=0 -DENABLE_WEB_SOCKETS=1 -DENABLE_WEB_TIMING=1 -DENABLE_WORKERS=1 -DENABLE_TOUCH_SLIDER=1 -DWTF_USE_3D_GRAPHICS=0 -DENABLE_3D_RENDERING=0 -DENABLE_WEBGL=0 -DENABLE_3D_RENDERING=0 -DENABLE_WEBGL=0 -DBUILDING_QT__=1 -DNDEBUG -DBUILDING_WTF -DBUILDING_WEBKIT -DQT_ASCII_CAST_WARNINGS -DQT_NO_DEBUG -DQT_CORE_LIB -I/home/milian/projects/qt5/install-playbook/mkspecs/unsupported/blackberry-armv7le-qcc -I/home/milian/projects/qt5/qtwebkit/Source/WTF -I. -I/home/milian/projects/qt5/qtwebkit/Source/WTF -I/home/milian/projects/qt5/qtwebkit/Source/WTF/wtf -I/home/milian/projects/qt5/qtwebkit/Source -I../include -I/home/milian/projects/qt5/install-playbook/include -I/home/milian/projects/qt5/install-playbook/include/QtScript -I/home/milian/projects/qt5/install-playbook/include/QtCore -I/home/milian/bbndk-2.0.1/target/qnx6/usr/include -I/home/milian/bbndk-2.0.1/target/qnx6/usr/include/freetype2 -I. -o obj/release/wtf/DateMath.o /home/milian/projects/qt5/qtwebkit/Source/WTF/wtf/DateMath.cpp
/home/milian/projects/qt5/qtwebkit/Source/WTF/wtf/DateMath.cpp: In function &apos;std::int32_t WTF::calculateUTCOffset()&apos;:
/home/milian/projects/qt5/qtwebkit/Source/WTF/wtf/DateMath.cpp:402: error: &apos;timegm&apos; was not declared in this scope
cc: /home/milian/bbndk-2.0.1/host/linux/x86/usr/lib/gcc/arm-unknown-nto-qnx6.5.0eabi/4.4.2/cc1plus error 1
make[1]: *** [obj/release/wtf/DateMath.o] Error 1
make[1]: Leaving directory `/home/milian/projects/qt5/build-playbook/qtwebkit/Release/Source/WTF&apos;
make: *** [sub-Source-WTF-WTF-pro-make_first-ordered] Error 2
makeobj[0]: Leaving directory `/home/milian/projects/qt5/build-playbook/qtwebkit/Release&apos;

I&apos;ll provide a patch now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693635</commentid>
    <comment_count>1</comment_count>
      <attachid>157989</attachid>
    <who name="Milian Wolff">milian.wolff</who>
    <bug_when>2012-08-13 07:19:58 -0700</bug_when>
    <thetext>Created attachment 157989
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693976</commentid>
    <comment_count>2</comment_count>
      <attachid>157989</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-08-13 12:54:26 -0700</bug_when>
    <thetext>Comment on attachment 157989
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=157989&amp;action=review

&gt; Source/WTF/wtf/DateMath.cpp:108
&gt; +#if OS(QNX)
&gt; +// qnx6 defines timegm in nbutil.h
&gt; +#include &lt;nbutil.h&gt;
&gt; +#endif

Out of curiousity: Why doesn&apos;t the blackberry port need this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694778</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-08-14 03:55:49 -0700</bug_when>
    <thetext>Rim folks, any idea? I keep on forgetting OS(QNX) vs. PLATFORM(BLACKBERRY) - is there a way to simplify the #ifdef usage here? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694781</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-08-14 03:57:42 -0700</bug_when>
    <thetext>Sorry, wrong bug ;). But my question to the RIM folks just changes slightly ;-): Any idea why the include isn&apos;t needed for PLATFORM(BLACKBERRY)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694928</commentid>
    <comment_count>5</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-08-14 07:05:37 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Sorry, wrong bug ;). But my question to the RIM folks just changes slightly ;-): Any idea why the include isn&apos;t needed for PLATFORM(BLACKBERRY)?

Isn&apos;t timegm defined in time.h? Can you check the time.h you are using?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694982</commentid>
    <comment_count>6</comment_count>
    <who name="Milian Wolff">milian.wolff</who>
    <bug_when>2012-08-14 08:06:11 -0700</bug_when>
    <thetext>No, in the BBNDK 2.0.1, it&apos;s only defined in nbutil.h:

~/bbndk-2.0.1$ grep -R timegm target/qnx6/usr/include/
target/qnx6/usr/include/nbutil.h:time_t timegm(struct tm *);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694991</commentid>
    <comment_count>7</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-08-14 08:10:00 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; No, in the BBNDK 2.0.1, it&apos;s only defined in nbutil.h:
&gt; 
&gt; ~/bbndk-2.0.1$ grep -R timegm target/qnx6/usr/include/
&gt; target/qnx6/usr/include/nbutil.h:time_t timegm(struct tm *);

OK. We also have nbutil.h. So it shouldn&apos;t break BB build. Patch looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695671</commentid>
    <comment_count>8</comment_count>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2012-08-14 19:26:24 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Rim folks, any idea? I keep on forgetting OS(QNX) vs. PLATFORM(BLACKBERRY) - is there a way to simplify the #ifdef usage here? :)

The patch looks good to me as well as I do not think DateMath.cpp should have a dependency on any PLATFORM() macro.

I agree with Simon that we should clarify the macro usage.

I think it would be useful to:

a./ List the currently maintained or targeted OS() macros when PLATFORM(BLACKBERRY) is set (in addition to OS(QNX))

b./ List the currently maintained or targeted PLATFORM() macros when OS(QNX) is set (in addition to PLATFORM(BLACKBERRY)).

If OS(QNX) is equivalent to PLATFORM(BLACKBERRY) than we should look into eliminate one of the 2 macros.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695996</commentid>
    <comment_count>9</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-08-15 07:41:02 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #3)
&gt; &gt; Rim folks, any idea? I keep on forgetting OS(QNX) vs. PLATFORM(BLACKBERRY) - is there a way to simplify the #ifdef usage here? :)
&gt; 
&gt; The patch looks good to me as well as I do not think DateMath.cpp should have a dependency on any PLATFORM() macro.
&gt; 
&gt; I agree with Simon that we should clarify the macro usage.
&gt; 
&gt; I think it would be useful to:
&gt; 
&gt; a./ List the currently maintained or targeted OS() macros when PLATFORM(BLACKBERRY) is set (in addition to OS(QNX))
&gt; 
&gt; b./ List the currently maintained or targeted PLATFORM() macros when OS(QNX) is set (in addition to PLATFORM(BLACKBERRY)).
&gt; 
&gt; If OS(QNX) is equivalent to PLATFORM(BLACKBERRY) than we should look into eliminate one of the 2 macros.

They are definitely not equivalent. PLATFORM(BLACKBERRY) is a subset of OS(QNX). OS(QNX) is always true in PLATFORM(BLACKBERRY)

a./ None (OS(QNX) only)
b./ PLATFORM(QT) and probably others. Also OS(QNX) can be used without any PLATFORM() macros.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695997</commentid>
    <comment_count>10</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-08-15 07:41:46 -0700</bug_when>
    <thetext>I can r+ the patch if no objection. Simon?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697139</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-08-16 07:59:49 -0700</bug_when>
    <thetext>Millian, please set commit-queue? if you&apos;d like to land it via the commit queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698145</commentid>
    <comment_count>12</comment_count>
      <attachid>157989</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-17 03:23:24 -0700</bug_when>
    <thetext>Comment on attachment 157989
Patch

Clearing flags on attachment: 157989

Committed r125877: &lt;http://trac.webkit.org/changeset/125877&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698146</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-17 03:23:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157989</attachid>
            <date>2012-08-13 07:19:58 -0700</date>
            <delta_ts>2012-08-17 03:23:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93842-20120813161926.patch</filename>
            <type>text/plain</type>
            <size>1472</size>
            <attacher name="Milian Wolff">milian.wolff</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJjNzYxYWFiZDZlZjkyMzI1NzI4Mzkz
ODc3NzFhMTRlYTRhZmUyZmQuLjRhNTI5ZjA4NTVjZjM5NDI0MGYyNGY1OWRjZGU3MjMzNzgyMTM2
NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDgtMTMgIE1pbGlhbiBXb2xmZiAgPG1pbGlh
bi53b2xmZkBrZGFiLmNvbT4KKworICAgICAgICBbUXRdIFFOWCBidWlsZCBmYWlscyBkdWUgdG8g
bWlzc2luZyB0aW1lZ20gZGVjbGFyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTkzODQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgT24gUU5YLCB0aW1lZ20gaXMgZGVjbGFyZWQgaW4gbmJ1dGlscy5o
IGFuZCBvbmUgbXVzdCBsaW5rIGFnYWluc3QKKyAgICAgICAgbmJ1dGlscyB0byB1c2UgaXQuCisK
KyAgICAgICAgKiBXVEYucHJpOgorICAgICAgICAqIHd0Zi9EYXRlTWF0aC5jcHA6CisKIDIwMTIt
MDgtMTEgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBFbmFibGUgWFBD
IFNlcnZpY2UgYmFzZWQgV2ViUHJvY2VzcyB3aXRoIHJ1bnRpbWUgZmxhZwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9XVEYucHJpIGIvU291cmNlL1dURi9XVEYucHJpCmluZGV4IDJjZmI2ZjgyYmJl
Mjc4MWE0YWI2MTRhMmQwNTJlZjUwMDVlZjk1N2EuLjFkMmQ0Zjc3MTdiN2RhNTQ1NmQ4MjBmNGU4
OTlmZTBkNWY4ODA4MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnByaQorKysgYi9Tb3Vy
Y2UvV1RGL1dURi5wcmkKQEAgLTMxLDMgKzMxLDggQEAgd2luMzItKiB7CiAgICAgTElCUyArPSAt
bHdpbm1tCiAgICAgTElCUyArPSAtbGdkaTMyCiB9CisKK3FueCB7CisgICAgIyByZXF1aXJlZCBm
b3IgdGltZWdtCisgICAgTElCUyArPSAtbG5idXRpbAorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvRGF0ZU1hdGguY3BwIGIvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwCmluZGV4IDcx
MGJhZTJiZjNkNzIxMjhmNTUzYjM0ZDdmM2M4M2JjYThkNzViZWEuLmUxOGVlY2NlZTliYjhmZDI0
ZGQzN2VmMDgxZDU3YTZlM2EwN2M3YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVN
YXRoLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5jcHAKQEAgLTEwMiw2ICsxMDIs
MTEgQEAKICNpbmNsdWRlIDxzeXMvdGltZWIuaD4KICNlbmRpZgogCisjaWYgT1MoUU5YKQorLy8g
cW54NiBkZWZpbmVzIHRpbWVnbSBpbiBuYnV0aWwuaAorI2luY2x1ZGUgPG5idXRpbC5oPgorI2Vu
ZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiAKIG5hbWVzcGFjZSBXVEYgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>