Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 555504 - >=net-libs/webkit-gtk-2.8 doesn't build on ia64
Summary: >=net-libs/webkit-gtk-2.8 doesn't build on ia64
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] GNOME (show other bugs)
Hardware: IA64 Linux
: Normal major (vote)
Assignee: Gentoo Linux Gnome Desktop Team
URL: https://bugs.webkit.org/show_bug.cgi?...
Whiteboard:
Keywords: EBUILD, PATCH, REGRESSION
Depends on: 513888
Blocks: gnome-3.16
  Show dependency tree
 
Reported: 2015-07-20 20:24 UTC by Émeric Maschino
Modified: 2015-11-07 11:07 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build.log (build.log,4.36 KB, text/plain)
2015-07-20 20:26 UTC, Émeric Maschino
Details
environment (environment,180.29 KB, text/plain)
2015-07-20 20:27 UTC, Émeric Maschino
Details
1.patch (1.patch,471 bytes, patch)
2015-09-23 18:37 UTC, Pacho Ramos
Details | Diff
webkit-gtk-2.8.5 CMakeOuput.log (CMakeOutput.log,18.92 KB, text/plain)
2015-09-24 08:14 UTC, Émeric Maschino
Details
Add ia64 as supported CPU to JSC (2.patch,336 bytes, patch)
2015-09-24 08:18 UTC, Émeric Maschino
Details | Diff
Update webkit-gtk-2.8.5 CMakeOutput.log with 2.patch applied (CMakeOutput.log,22.40 KB, text/plain)
2015-09-24 08:35 UTC, Émeric Maschino
Details
Updated build.log with 1.patch and 2.patch applied (build.log,33.94 KB, text/plain)
2015-09-24 23:29 UTC, Émeric Maschino
Details
Fix webkit-gtk-2.8.5 ia64 build (webkit-gtk-2.8.5-fix-ia64-build.patch,663 bytes, patch)
2015-10-30 19:21 UTC, Émeric Maschino
Details | Diff
Updated webkit-gtk-2.8.5.ebuild to build on ia64 (webkit-gtk-2.8.5.ebuild,7.26 KB, text/plain)
2015-11-03 22:25 UTC, Émeric Maschino
Details
Diff between webkit-gtk-2.8.5.ebuild in portage and attachment #416038 (webkit-gtk-2.8.5.ebuild.diff,2.11 KB, text/plain)
2015-11-03 22:26 UTC, Émeric Maschino
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Émeric Maschino 2015-07-20 20:24:31 UTC
Webkit-GTK seems not supported on ia64 anymore. While this sounds reasonable [1] this also prevents GNOME 3.16 stabilization as several core packages (i) either directly require net-libs/webkit-gtk, like gnome-extra/sushi, gnome-extra/yelp, mail-client/evolution, media-gfx/shotwell, net-im/empathy, net-libs/gnome-online-accounts and www-client/epiphany (ii) or indirectly require net-libs/webkit-gtk forcibly enabling gnome-online-accounts USE flag like gnome-extra/gnome-contacts, that also requires gnome-extra/evolution-data-server[gnome-online-accounts]. Up to 3.14 (included), it was possible to emerge GNOME, as packages requiring Webkit GTK were OK with >=net-libs/webkit-gtk-2.2 (even though they were badly crashing [1]). But now, >=net-libs/webkit-gtk-2.4 fails to build [2] and >=net-libs/webkit-gtk-2.8 (required by web-client/epiphany) is no more available on ia64. As a result, it's impossible to emerge GNOME 3.16.

[1] https://bugs.webkit.org/show_bug.cgi?id=129992
[2] https://bugs.gentoo.org/show_bug.cgi?id=513888

Reproducible: Always

Steps to Reproduce:
1. emerge =gnome-base/gnome-3.16.0
2. >=net-libs/webkit-gtk-2.4 fails with bug #513888
3. >=net-libs/webkit-gtk-2.8 fails during compile phase with Unknown CPU 'ia64'
Actual Results:  
Unable to emerge GNOME 3.16

Expected Results:  
Ability to emerge GNOME 3.16, perhaps making Webkit-GTK dependencies optional where applicable (e.g. not requiring per-package gnome-online-accounts USE flag, or removing it from /usr/portage/profiles/targets/desktop/gnome/make.defaults)

Portage 2.2.18 (python 3.3.5-final-0, default/linux/ia64/13.0/desktop/gnome/systemd, gcc-4.7.4, glibc-2.20-r2, 3.18.16-gentoo ia64)
=================================================================
System uname: Linux-3.18.16-gentoo-ia64-Madison-with-gentoo-2.2
KiB Mem:    25052672 total,  22406912 free
KiB Swap:     524224 total,    524224 free
Timestamp of repository gentoo: Fri, 10 Jul 2015 20:30:01 +0000
sh bash 4.3_p33-r2
ld GNU ld (Gentoo 2.24 p1.4) 2.24
app-shells/bash:          4.3_p33-r2::gentoo
dev-java/java-config:     2.2.0::gentoo
dev-lang/perl:            5.20.2::gentoo
dev-lang/python:          2.7.9-r1::gentoo, 3.3.5-r1::gentoo
dev-util/cmake:           2.8.12.2-r1::gentoo
dev-util/pkgconfig:       0.28-r2::gentoo
sys-apps/baselayout:      2.2::gentoo
sys-apps/openrc:          0.17::gentoo
sys-apps/sandbox:         2.6-r1::gentoo
sys-devel/autoconf:       2.13::gentoo, 2.69::gentoo
sys-devel/automake:       1.11.6-r1::gentoo, 1.13.4::gentoo, 1.14.1::gentoo
sys-devel/binutils:       2.24-r3::gentoo
sys-devel/gcc:            4.5.4::gentoo, 4.6.4::gentoo, 4.7.4::gentoo
sys-devel/gcc-config:     1.7.3::gentoo
sys-devel/libtool:        2.4.6::gentoo
sys-devel/make:           4.1-r1::gentoo
sys-kernel/linux-headers: 3.18::gentoo (virtual/os-headers)
sys-libs/glibc:           2.20-r2::gentoo
Repositories:

gentoo
    location: /usr/portage
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000

my_ebuilds
    location: /var/lib/layman/my_ebuilds
    masters: gentoo
    priority: 0

ACCEPT_KEYWORDS="ia64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="ia64-unknown-linux-gnu"
CFLAGS="-mtune=itanium2 -O2 -pipe"
CHOST="ia64-unknown-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-mtune=itanium2 -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="ftp://mirrors.linuxant.fr/distfiles.gentoo.org/"
LANG="fr_FR.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
USE="X a52 aac acl acpi alsa berkdb branding bzip2 cairo cdda cdr cli colord cracklib crypt cups cxx dbus dri dts dvdr eds encode evo exif fam firefox flac fortran gdbm gif glamor gnome gnome-keyring gnome-online-accounts gpm gstreamer gtk ia64 iconv introspection ipv6 jpeg lcms ldap libnotify libsecret mad mng modules mp3 mp4 mpeg nautilus ncurses nls nptl ogg opengl openmp pam pango pcre pdf png policykit ppds pulseaudio qt3support qt4 readline sdl session spell ssl startup-notification svg systemd tcpd tiff tracker truetype udev udisks unicode upower usb vorbis wxwidgets xcb xml xv xvid zlib" ALSA_CARDS="fm801" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="fr" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3" RUBY_TARGETS="ruby19 ruby20" USERLAND="GNU" VIDEO_CARDS="fbdev modesetting radeon" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Comment 1 Émeric Maschino 2015-07-20 20:26:54 UTC
Created attachment 407296 [details]
build.log
Comment 2 Émeric Maschino 2015-07-20 20:27:21 UTC
Created attachment 407300 [details]
environment
Comment 3 Pacho Ramos gentoo-dev 2015-07-21 10:38:29 UTC
We will need to look at other distributions as upstream don't care about ia64 for ages...
Comment 4 Émeric Maschino 2015-08-22 22:38:21 UTC
(In reply to Pacho Ramos from comment #3)
> We will need to look at other distributions as upstream don't care about
> ia64 for ages...

Pacho, what do you mean by "other distributions"? Linux distributions??? Gentoo is the only one still "supporting" ia64. If you mean JavaScript "distribution", the only working implementation for ia64 is SpiderMonkey.

     Émeric
Comment 5 Pacho Ramos gentoo-dev 2015-09-05 15:56:25 UTC
Yeah... in that case I guess we will need to start dropping keywords :S
Comment 6 Émeric Maschino 2015-09-23 08:38:12 UTC
(In reply to Pacho Ramos from comment #5)
> Yeah... in that case I guess we will need to start dropping keywords :S

Like dropping gnome-online-accounts, as most of the problems come from it? And then ensure that GNOME core packages can be emerged without g-o-a and thus without webkit-gtk?

Today, eclean dist -d was complaining about no more available totem-3.14 and yelp-3.14 in portage tree. Indeed, only 3.16 versions are now available. The beginning of the end for GNOME on ia64?

I'm not familiar enough with the GNOME project, but what's preventing the GNOME applications that currently depend on webkit-gtk to use spidermonkey as JS implementation?

From [1], it even looks like this is fortunately the case (well, for ia64) for the most important GNOME 3 component: GNOME Shell. Still from [1], JS implementation in GNOME is either Gjs or Seed. How is it then that some GNOME applications have direct dependency on webkit-gtk rather than Seed?

     Émeric

[1] https://wiki.gnome.org/JavaScript
Comment 7 Pacho Ramos gentoo-dev 2015-09-23 18:34:36 UTC
Looking to the cmake config error... could you provide the pointed /var/tmp/portage/net-libs/webkit-gtk-2.8.3/work/webkit-gtk-2.8.3_build/CMakeFiles/CMakeOutput.log to try to know what concrete check is failing?
Comment 8 Pacho Ramos gentoo-dev 2015-09-23 18:37:27 UTC
Created attachment 412670 [details, diff]
1.patch

Also try after applying this patch please
Comment 9 Gilles Dartiguelongue (RETIRED) gentoo-dev 2015-09-23 21:41:33 UTC
webkit is not needed for JS but for webviews in "online accounts".
This applet is already optional at g-c-c level afaik.
Comment 10 Émeric Maschino 2015-09-24 08:14:30 UTC
Created attachment 412696 [details]
webkit-gtk-2.8.5 CMakeOuput.log
Comment 11 Émeric Maschino 2015-09-24 08:16:43 UTC
(In reply to Pacho Ramos from comment #7)
> Looking to the cmake config error... could you provide the pointed
> /var/tmp/portage/net-libs/webkit-gtk-2.8.3/work/webkit-gtk-2.8.3_build/
> CMakeFiles/CMakeOutput.log to try to know what concrete check is failing?

webkit-gtk-2.8.3 is no more in portage tree, so please find in attachment 412696 [details] the required log for webkit-gtk-2.8.5.

     Émeric
Comment 12 Émeric Maschino 2015-09-24 08:18:04 UTC
Created attachment 412698 [details, diff]
Add ia64 as supported CPU to JSC
Comment 13 Émeric Maschino 2015-09-24 08:33:46 UTC
(In reply to Pacho Ramos from comment #8)
> Created attachment 412670 [details, diff] [details, diff]
> 1.patch
> 
> Also try after applying this patch please

Patch in attachment 412698 [details, diff] was also required. Still fails early during compile phase. I don't have build.log available at the moment, but can provide it if required. Though I highly doubt that the required bits for ia64 are in WebKit source code. See my attempt at fixing WebKit 2.2.5 (at the time) in [2]...

Well, I'm also surprised that PA-RISC was added as a supported platform upstream [1]! IIRC, 64-bit PA-RISC and ia64 are distant relatives.

     Émeric

[1] https://bugs.webkit.org/show_bug.cgi?id=143453
[2] https://bugs.webkit.org/show_bug.cgi?id=129992#c2
Comment 14 Émeric Maschino 2015-09-24 08:35:38 UTC
Created attachment 412700 [details]
Update webkit-gtk-2.8.5 CMakeOutput.log with 2.patch applied
Comment 15 Émeric Maschino 2015-09-24 08:51:56 UTC
(In reply to Gilles Dartiguelongue from comment #9)
> webkit is not needed for JS but for webviews in "online accounts".

[Thanks for clarifying. In the meantime, I've also asked for explanations on Gjs/Seed (well, WebKit) on javascript-list@gnome.org]

Wow, isn't this overkill to have two JS runtimes (Spidermonkey for Gjs and WebKit for WebKit-GTK) "just" for webviews? As we can't "avoid" Spidermonkey (since it's required by Gjs, that in turn is used by several GNOME components), isn't there a "Gjs-based" webview alternative in order to rely on a unique JS runtime? IIRC, Yelp (for example) didn't require WebKit-GTK in the past, so probably made use of a different "webview implementation" at the time. Isn't this no more possible nowadays?

> This applet is already optional at g-c-c level afaik.

g-o-a is mandatory for one GNOME component, but I don't remember whether it's g-c-c or not at the moment. Will look again.

     Émeric
Comment 16 Pacho Ramos gentoo-dev 2015-09-24 10:14:59 UTC
(In reply to Émeric Maschino from comment #14)
> Created attachment 412700 [details]
> Update webkit-gtk-2.8.5 CMakeOutput.log with 2.patch applied

How does the new build.log look?
Comment 17 Émeric Maschino 2015-09-24 23:29:54 UTC
Created attachment 412834 [details]
Updated build.log with 1.patch and 2.patch applied
Comment 18 Émeric Maschino 2015-09-24 23:38:18 UTC
(In reply to Pacho Ramos from comment #16)
> (In reply to Émeric Maschino from comment #14)
> > Created attachment 412700 [details]
> > Update webkit-gtk-2.8.5 CMakeOutput.log with 2.patch applied
> 
> How does the new build.log look?

See attachment 412834 [details]. Build fails because of a missing (C++11) std::is_trivially_default_constructible in gcc 4.7. This was reported upstream and apparently fixed in gcc 4.8 [1], but we're stuck with gcc 4.7 on ia64 at the moment [2].

     Émeric


[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52702
[2] https://bugs.gentoo.org/show_bug.cgi?id=503838
Comment 19 Pacho Ramos gentoo-dev 2015-09-25 16:26:04 UTC
Yeah, that looks like https://bugs.webkit.org/show_bug.cgi?id=122008

There is a patch in last comment, maybe that one or an adaptation of https://bugs.webkit.org/attachment.cgi?id=212782&action=diff could work for you
Comment 20 Émeric Maschino 2015-09-25 22:29:27 UTC
(In reply to Pacho Ramos from comment #19)
> Yeah, that looks like https://bugs.webkit.org/show_bug.cgi?id=122008
> 
> There is a patch in last comment, maybe that one or an adaptation of
> https://bugs.webkit.org/attachment.cgi?id=212782&action=diff could work for
> you

I'll try this GCC < 4.8.1 hack, but if you look at Source/WTF/wtf/Compiler.h currently in master [1], you'll notice (lines 75-77):

#if !GCC_VERSION_AT_LEAST(4, 9, 0)
#error "Please use a newer version of GCC. WebKit requires GCC 4.9.0 or newer to compile."
#endif

Minimum GCC version is set to 4.7.0 for webkit-gtk-2.8.5 at the moment, but time is quickly running out...

     Émeric


[1] https://github.com/WebKit/webkit/blob/master/Source/WTF/wtf/Compiler.h
Comment 21 Émeric Maschino 2015-09-25 22:35:20 UTC
(In reply to Émeric Maschino from comment #20)
> I'll try this GCC < 4.8.1 hack, but if you look at Source/WTF/wtf/Compiler.h
> currently in master [1], you'll notice (lines 75-77):
> 
> #if !GCC_VERSION_AT_LEAST(4, 9, 0)
> #error "Please use a newer version of GCC. WebKit requires GCC 4.9.0 or
> newer to compile."
> #endif
> 
> Minimum GCC version is set to 4.7.0 for webkit-gtk-2.8.5 at the moment, but
> time is quickly running out...
> 
>      Émeric
> 
> 
> [1] https://github.com/WebKit/webkit/blob/master/Source/WTF/wtf/Compiler.h

Well, this was even quicker than what I was expecting: back to bug #513888.

But this time, Ruby (2.0.0p645) segfaults at Source/JavaScriptCore/offlineasm/transform.rb:202

     Émeric
Comment 22 Émeric Maschino 2015-09-29 19:39:16 UTC
(In reply to Émeric Maschino from comment #21)
> 
> Well, this was even quicker than what I was expecting: back to bug #513888.
> 
> But this time, Ruby (2.0.0p645) segfaults at
> Source/JavaScriptCore/offlineasm/transform.rb:202
> 
>      Émeric

Hacking webkit-gtk-2.8.5.ebuild to force use of /usr/bin/ruby19 interpreter, I was able to go a little bit farther.

New error is:

/var/tmp/portage/net-libs/webkit-gtk-2.8.5/work/webkitgtk-2.8.5/Source/JavaScriptCore/inspector/JSGlobalObjectConsoleClient.cpp:73:67: error: ‘this’
was not captured for this lambda function

Corresponding code is:

JSGlobalObjectConsoleClient::JSGlobalObjectConsoleClient(InspectorConsoleAgent* consoleAgent)
    : ConsoleClient()
    , m_consoleAgent(consoleAgent)
{
    static std::once_flag initializeLogging;
    std::call_once(initializeLogging, []{
        JSGlobalObjectConsoleClient::initializeLogToSystemConsole();
    });
}

Yet another GCC < 4.8 bug [1]. Hacking and resuming emerge again...

     Émeric

[1] http://stackoverflow.com/questions/4940259/lambdas-require-capturing-this-to-call-static-member-function
Comment 23 Émeric Maschino 2015-09-30 23:35:46 UTC
(In reply to Émeric Maschino from comment #22)
> 
> New error is:
> 
> /var/tmp/portage/net-libs/webkit-gtk-2.8.5/work/webkitgtk-2.8.5/Source/
> JavaScriptCore/inspector/JSGlobalObjectConsoleClient.cpp:73:67: error: ‘this’
> was not captured for this lambda function

Fixed, as well as other similar errors in Source/WebCore/Modules/websockets/WorkerThreadableWebSocketChannel.cpp.

I'm now stuck with a function disambiguation problem in Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:


void ResourceHandle::sendPendingRequest()
{
#if ENABLE(WEB_TIMING)
    m_requestTime = monotonicallyIncreasingTime();
#endif

    if (d->m_firstRequest.timeoutInterval() > 0) {
        d->m_timeoutSource.scheduleAfterDelay("[WebKit] ResourceHandle request timeout", [this] {
            client()->didFail(this, ResourceError::timeoutError(firstRequest().url().string()));
            cancel();
        }, std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::duration<double>(d->m_firstRequest.timeoutInterval())),
        G_PRIORITY_DEFAULT, nullptr, g_main_context_get_thread_default());
    }

    // Balanced by a deref() in cleanupSoupRequestOperation, which should always run.
    ref();

    d->m_cancellable = adoptGRef(g_cancellable_new());
    soup_request_send_async(d->m_soupRequest.get(), d->m_cancellable.get(), sendRequestCallback, this);
}


g++ fails to determine which overload to call:

virtual void WTF::GMainLoopSource::scheduleAfterDelay(const char*, std::function<void()>, std::chrono::microseconds, int, std::function<void()>, GMainContext*)

or

virtual void WTF::GMainLoopSource::scheduleAfterDelay(const char*, std::function<bool()>, std::chrono::microseconds, int, std::function<void()>, GMainContext*)


I don't see what I can do to solve this ambiguity.

Is trying to solve all these C++11 problems with gcc 4.7 a dead horse?

     Émeric
Comment 24 SpanKY gentoo-dev 2015-10-01 03:24:05 UTC
(In reply to Émeric Maschino from comment #23)

i think trying to fix/workaround the glibc/gcc-4.8+ bug is the only sane path forward for ia64
Comment 25 Émeric Maschino 2015-10-30 19:10:17 UTC
(In reply to SpanKY from comment #24)
> (In reply to Émeric Maschino from comment #23)
> 
> i think trying to fix/workaround the glibc/gcc-4.8+ bug is the only sane
> path forward for ia64

Strongly agree, although I fear I lack the skills to help there :-(

So, I've stopped trying to fix C++11 issues with gcc-4.7, reworked ruby section to use ruby-1.9 (because of bug #513888), removed nearly all ia64 patches (they seem all obsolete to me; more in a a separate comment) emerged gcc-4.8 and finally successfully built webkit-gtk-2.8 using gcc-4.8.

But since glibc was built using gcc-4.7 on my system (because of bug #503838), I'm now hitting bug #513386 for all packages linking against libwebkitgtk-3.0.so (e.g. yelp, evolution, ...), hence still preventing ia64 from updating to >=gnome-3.16.

     Émeric
Comment 26 Émeric Maschino 2015-10-30 19:21:49 UTC
Created attachment 415770 [details, diff]
Fix webkit-gtk-2.8.5 ia64 build
Comment 27 Émeric Maschino 2015-10-30 19:39:36 UTC
(In reply to Émeric Maschino from comment #26)
> Created attachment 415770 [details, diff] [details, diff]
> Fix webkit-gtk-2.8.5 ia64 build

OK, I *think* that all ia64-related patches (i.e. webkit-gtk-2.6.0-ia64-platform.patch and webkit-gtk-2.8.1-ia64-malloc.patch) but attached webkit-gtk-2.8.5-fix-ia64-build.patch can be safely removed from webkit-gtk-2.8.5. ebuild.

They're completely outdated with current WebKit-GTK architecture. This doesn't mean that WebKit-GTK no more crashes on ia64, though! But if you're running your ia64 kernel configured with CONFIG_IA64_PAGE_SIZE_16KB=y as most (all?) ia64 Linux distributions back at the time, things should be better thanks to fix for WebKit's bug #115502 [1].

     Émeric


[1] https://bugs.webkit.org/show_bug.cgi?id=115502
Comment 28 Émeric Maschino 2015-11-01 21:52:22 UTC
> (In reply to Émeric Maschino from comment #23)
> 
> But since glibc was built using gcc-4.7 on my system (because of bug
> #503838), I'm now hitting bug #513386 for all packages linking against
> libwebkitgtk-3.0.so (e.g. yelp, evolution, ...), hence still preventing ia64
> from updating to >=gnome-3.16.

Rebuilding gcc 4.8 with patch from bug #513386 [1], webkit-gtk-2.8 with patched gcc 4.8 and then yelp and evolution (still with ia64 stable gcc 4.7) fixed the problem for me.

My ia64 workstation is finally running gnome-3.16.0 :-)

     Émeric


[1] https://bugs.gentoo.org/show_bug.cgi?id=513386#c18
Comment 29 Émeric Maschino 2015-11-02 09:15:00 UTC
(In reply to Émeric Maschino from comment #27)
> 
> OK, I *think* that all ia64-related patches (i.e.
> webkit-gtk-2.6.0-ia64-platform.patch and webkit-gtk-2.8.1-ia64-malloc.patch)
> but attached webkit-gtk-2.8.5-fix-ia64-build.patch can be safely removed
> from webkit-gtk-2.8.5. ebuild.
> 
> They're completely outdated with current WebKit-GTK architecture. This
> doesn't mean that WebKit-GTK no more crashes on ia64, though! But if you're
> running your ia64 kernel configured with CONFIG_IA64_PAGE_SIZE_16KB=y as
> most (all?) ia64 Linux distributions back at the time, things should be
> better thanks to fix for WebKit's bug #115502 [1].

Coincidentally, I just got feedback about the status of WebKit's ia64 [1]. Well, it'll be a long journey before WebKit properly works on ia64 as I'm not a WebKit developer either...

     Émeric


[1] https://bugs.webkit.org/show_bug.cgi?id=129992#c4
Comment 30 Pacho Ramos gentoo-dev 2015-11-03 21:47:02 UTC
Can you please attach and ebuild diff over current ebuild in the tree to ensure we get all the changed that you have tested make it work again for ia64?

Thanks
Comment 31 Émeric Maschino 2015-11-03 22:25:33 UTC
Created attachment 416038 [details]
Updated webkit-gtk-2.8.5.ebuild to build on ia64

The webkit-gtk-2.8.5-fix-ia64-build.patch referred therein is attachment #415770 [details, diff]
Comment 32 Émeric Maschino 2015-11-03 22:26:49 UTC
Created attachment 416040 [details]
Diff between webkit-gtk-2.8.5.ebuild in portage and attachment #416038 [details]
Comment 33 Émeric Maschino 2015-11-03 22:39:09 UTC
(In reply to Pacho Ramos from comment #30)
> Can you please attach and ebuild diff over current ebuild in the tree to
> ensure we get all the changed that you have tested make it work again for
> ia64?
> 
> Thanks

Sure, please find attachment #416038 [details] (referring to attachment #415770 [details, diff]) and attachment #416040 [details] for the diff.

Note that you probably don't want the reworked Ruby section, as Ruby 1.9 has been marked for removal on October 30th [1], which is problematic as ia64 will be left with no working Ruby implementation [2][3]!

     Émeric


[1] https://bugs.gentoo.org/show_bug.cgi?id=536852
[2] https://bugs.gentoo.org/show_bug.cgi?id=513888
[3] https://bugs.gentoo.org/show_bug.cgi?id=561780
Comment 34 Pacho Ramos gentoo-dev 2015-11-07 11:07:02 UTC
[master 8d2af1c] net-libs/webkit-gtk: Fix ia64, bug #555504 by Émeric Maschino
 2 files changed, 26 insertions(+), 5 deletions(-)
 create mode 100644 net-libs/webkit-gtk/files/webkit-gtk-2.8.5-fix-ia64-build.patch