Bug 199834 - www/netsurf does not build on ARM and amd64
Summary: www/netsurf does not build on ARM and amd64
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Michael Moll
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-05-01 09:04 UTC by Ulrich Grey
Modified: 2015-12-06 12:57 UTC (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ulrich Grey 2015-05-01 09:04:17 UTC
COMPILE: src/surface/x.c
cc -MMD -MP -std=c99 -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112L -I/usr/local/DEVEL/ports/www/netsurf/work/netsurf-full-3.0/src/libnsfb-0.1.0/include/ -I/usr/local/DEVEL/ports/www/netsurf/work/netsurf-full-3.0/src/libnsfb-0.1.0/src  -O -pipe -mfloat-abi=softfp  -I/usr/local/include -DLIBICONV_PLUG -fno-strict-aliasing -D_ALIGNED="__attribute__((aligned))" -O -pipe -mfloat-abi=softfp  -I/usr/local/include -DLIBICONV_PLUG -fno-strict-aliasing -DBUILD_TARGET_gtk -DBUILD_HOST_FreeBSD -Wno-error -I/usr/local/include/SDL -I/usr/local/include  -D_REENTRANT -D_THREAD_SAFE   -DNSFB_NEED_HINTS_ALLOC -DNSFB_NEED_ICCCM_API_PREFIX -DNSFB_XCBPROTO_MAJOR_VERSION=1 -DNSFB_XCBPROTO_MINOR_VERSION=11 -I/usr/local/include    -o build-FreeBSD-gtk-release-lib-static/src_surface_x.o -c src/surface/x.c
src/surface/x.c:919:13: error: use of undeclared identifier 'fd_set'
            fd_set rfds;
            ^
src/surface/x.c:920:28: error: variable has incomplete type 'struct timeval'
            struct timeval tv;
                           ^
src/surface/x.c:920:20: note: forward declaration of 'struct timeval'
            struct timeval tv;
                   ^
src/surface/x.c:924:13: warning: implicit declaration of function 'FD_ZERO' is invalid in C99 [-Wimplicit-function-declaration]
            FD_ZERO(&rfds);
            ^
src/surface/x.c:924:22: error: use of undeclared identifier 'rfds'
            FD_ZERO(&rfds);
                     ^
src/surface/x.c:925:13: warning: implicit declaration of function 'FD_SET' is invalid in C99 [-Wimplicit-function-declaration]
            FD_SET(confd, &rfds);
            ^
src/surface/x.c:925:28: error: use of undeclared identifier 'rfds'
            FD_SET(confd, &rfds);
                           ^
src/surface/x.c:930:22: warning: implicit declaration of function 'select' is invalid in C99 [-Wimplicit-function-declaration]
            retval = select(confd + 1, &rfds, NULL, NULL, &tv);
                     ^
src/surface/x.c:930:41: error: use of undeclared identifier 'rfds'
            retval = select(confd + 1, &rfds, NULL, NULL, &tv);
                                        ^
3 warnings and 5 errors generated.
/usr/local/DEVEL/ports/www/netsurf/work/netsurf-full-3.0/prefix-gtk/share/netsurf-buildsystem/makefiles/Makefile.top:573: recipe for target 'build-FreeBSD-gtk-release-lib-static/src_surface_x.o' failed
gmake[3]: *** [build-FreeBSD-gtk-release-lib-static/src_surface_x.o] Error 1
gmake[3]: Leaving directory '/usr/local/DEVEL/ports/www/netsurf/work/netsurf-full-3.0/src/libnsfb-0.1.0'
Makefile:80: recipe for target '/usr/local/DEVEL/ports/www/netsurf/work/netsurf-full-3.0/prefix-gtk/build-stamp' failed
gmake[2]: *** [/usr/local/DEVEL/ports/www/netsurf/work/netsurf-full-3.0/prefix-gtk/build-stamp] Error 2
gmake[2]: Leaving directory '/usr/local/DEVEL/ports/www/netsurf/work/netsurf-full-3.0'
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1
Comment 1 John Marino freebsd_committer freebsd_triage 2015-12-02 19:36:36 UTC
According to portsmon, this builds fine on amd64.

Portsmon has no entry for arm though, which may mean a dependency doesn't build first.
Comment 2 Michael Moll freebsd_committer freebsd_triage 2015-12-03 13:53:11 UTC
netsurf-3.0_6 built fine for me on armv6hf. Ulrich, what's the status here?
Comment 3 Ulrich Grey 2015-12-03 17:01:26 UTC
(In reply to Michael Moll from comment #2)
I have built www/netsurf-3.0_6 using a FreeBSD 11.0-CURRENT #0 r291413 arm armv6 system.
The compilation finished successfully, but netsurf crashes on startup:

(gdb) run
Starting program: /usr/local/bin/netsurf 
Error while reading shared library symbols:
Dwarf Error: wrong version in compilation unit header (is 3, should be 2) [in module /usr/local/lib/libjpeg.so.8]
[New LWP 100126]
[New Thread 22210000 (LWP 100126/netsurf)]
Error while reading shared library symbols:
Dwarf Error: wrong version in compilation unit header (is 3, should be 2) [in module /usr/local/lib/libjpeg.so.8]
Error while reading shared library symbols:

... ...

IN_BODY
AFTER_BODY
AFTER_BODY
AFTER_AFTER_BODY
AFTER_AFTER_BODY

Program received signal SIGBUS, Bus error.
[Switching to Thread 22210000 (LWP 100126/netsurf)]
__sbmaskrune (_c=108, _f=256) at _ctype.h:108
108                    _CurrentRuneLocale->__runetype[_c] & _f;
Current language:  auto; currently minimal
(gdb) where
#0  __sbmaskrune (_c=108, _f=256) at _ctype.h:108
#1  0x00062904 in __sbistype (_c=108, _f=256) at _ctype.h:120
#2  0x0005bfa8 in urldb_get_search_tree_direct (host=0x20e1f1 "localhost") at content/urldb.c:1972
#3  0x0005b620 in urldb_get_search_tree (host=0x20e1f1 "localhost") at content/urldb.c:1984
#4  0x0005a174 in urldb_find_url (url=0x223e6a40) at content/urldb.c:1879
#5  0x0005b278 in urldb_set_thumbnail (url=0x223e6a40, bitmap=0x22908bb0) at content/urldb.c:1149
#6  0x000cb09c in thumbnail_create (content=0x22908c40, bitmap=0x22908bb0, url=0x223e6a40)
    at gtk/thumbnail.c:124
#7  0x0007e0ac in history_add (history=0x22833cb0, content=0x22908c40, frag_id=0x0)
    at desktop/history_core.c:293
#8  0x000747f4 in $a.40 () at desktop/browser.c:1276
#9  0x000747f4 in $a.40 () at desktop/browser.c:1276
(gdb) The program is running.  Exit anyway? (y or n) y
Comment 4 Ulrich Grey 2015-12-03 17:24:11 UTC
(In reply to John Marino from comment #1)
Trying to build on a FreeBSD 10.2-RELEASE-p7 #0 r291381 amd64 system resulted in this message:

cc -MMD -MP -std=c99 -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112L -I/usr/local/DEVEL/ports/www/netsurf/work/netsurf-full-3.0/src/libnsfb-0.1.0/include/ -I/usr/local/DEVEL/ports/www/netsurf/work/netsurf-full-3.0/src/libnsfb-0.1.0/src  -O2 -pipe  -I/usr/local/include -DLIBICONV_PLUG -fstack-protector -fno-strict-aliasing -D_ALIGNED="__attribute__((aligned))" -O2 -pipe  -I/usr/local/include -DLIBICONV_PLUG -fstack-protector -fno-strict-aliasing -DBUILD_TARGET_gtk -DBUILD_HOST_FreeBSD -Wno-error -I/usr/local/include/SDL -I/usr/local/include  -D_REENTRANT -D_THREAD_SAFE   -DNSFB_NEED_HINTS_ALLOC -DNSFB_NEED_ICCCM_API_PREFIX -DNSFB_XCBPROTO_MAJOR_VERSION=1 -DNSFB_XCBPROTO_MINOR_VERSION=11 -I/usr/local/include   -I/usr/local/include    -o build-FreeBSD-gtk-release-lib-static/src_surface_x.o -c src/surface/x.c
src/surface/x.c:919:13: error: use of undeclared identifier 'fd_set'
            fd_set rfds;
            ^
src/surface/x.c:920:28: error: variable has incomplete type 'struct timeval'
            struct timeval tv;
                           ^
src/surface/x.c:920:20: note: forward declaration of 'struct timeval'
            struct timeval tv;
                   ^
src/surface/x.c:924:13: warning: implicit declaration of function 'FD_ZERO' is invalid in C99 [-Wimplicit-function-declaration]
            FD_ZERO(&rfds);
            ^
src/surface/x.c:924:22: error: use of undeclared identifier 'rfds'
            FD_ZERO(&rfds);
                     ^
src/surface/x.c:925:13: warning: implicit declaration of function 'FD_SET' is invalid in C99 [-Wimplicit-function-declaration]
            FD_SET(confd, &rfds);
            ^
src/surface/x.c:925:28: error: use of undeclared identifier 'rfds'
            FD_SET(confd, &rfds);
                           ^
src/surface/x.c:930:22: warning: implicit declaration of function 'select' is invalid in C99 [-Wimplicit-function-declaration]
            retval = select(confd + 1, &rfds, NULL, NULL, &tv);
                     ^
src/surface/x.c:930:41: error: use of undeclared identifier 'rfds'
            retval = select(confd + 1, &rfds, NULL, NULL, &tv);
                                        ^
3 warnings and 5 errors generated.
/usr/local/DEVEL/ports/www/netsurf/work/netsurf-full-3.0/prefix-gtk/share/netsurf-buildsystem/makefiles/Makefile.top:573: die Regel für Ziel „build-FreeBSD-gtk-release-lib-static/src_surface_x.o“ scheiterte
gmake[2]: *** [build-FreeBSD-gtk-release-lib-static/src_surface_x.o] Fehler 1
gmake[2]: Verzeichnis „/usr/local/DEVEL/ports/www/netsurf/work/netsurf-full-3.0/src/libnsfb-0.1.0“ wird verlassen
Makefile:80: die Regel für Ziel „/usr/local/DEVEL/ports/www/netsurf/work/netsurf-full-3.0/prefix-gtk/build-stamp“ scheiterte
gmake[1]: *** [/usr/local/DEVEL/ports/www/netsurf/work/netsurf-full-3.0/prefix-gtk/build-stamp] Fehler 2
gmake[1]: Verzeichnis „/usr/local/DEVEL/ports/www/netsurf/work/netsurf-full-3.0“ wird verlassen
===> Compilation failed unexpectedly.
Comment 5 John Marino freebsd_committer freebsd_triage 2015-12-03 17:30:34 UTC
(In reply to Ulrich Grey from comment #4)

No offense, but if you're not getting a clean build, then the problem is local to you.

I'd bet money you are not using poudriere to build ports.
Comment 6 John Marino freebsd_committer freebsd_triage 2015-12-03 17:32:28 UTC
see here: http://portsmon.freebsd.org/portoverview.py?category=www&portname=netsurf


It's building on amd64
Comment 7 Michael Moll freebsd_committer freebsd_triage 2015-12-03 20:27:38 UTC
There might be the possibility that a specific combination of options is leading to that problem, but I can't reproduce it on armv6hf nor amd64.

"CurrentRuneLocale" sounds to me like the recent locale commits could be related. Did you rebuild all ports before trying to build netwurf?

netsurf itself also crashes for me on armv6hf, but later and with a quite different backtrace. But before tackling that further, I would say somebody[tm] needs to update that port to the latest upstream release.
Comment 8 Ulrich Grey 2015-12-04 11:18:09 UTC
(In reply to John Marino from comment #6)
You are right!
On my amd64 box now I have installed a chroot environment. I have compiled www/netsurf and all dependencies there and it works now. (I will do the same on my cubox. It will last some hours.)
I have produced some noise here. Sorry about that.
Comment 9 John Marino freebsd_committer freebsd_triage 2015-12-04 11:20:59 UTC
No problem.

portsmon a good way to determine if it's a global issue or "just me".  I'm glad you are back on track.
Comment 10 Ulrich Grey 2015-12-04 20:43:52 UTC
(In reply to Michael Moll from comment #7)
Now I have rebuilt www/netsurf and all dependencies in a clean chroot environment:

root@wqtest:/ # uname -ap
FreeBSD wqtest 11.0-CURRENT FreeBSD 11.0-CURRENT #0 r291413: Mon Nov 30 18:34:40 UTC 2015     root@wqtest:/usr/local/DEVEL/obj/usr/local/DEVEL/SRC/head/sys/IMX6  arm armv6


Program received signal SIGBUS, Bus error.
[Switching to Thread 22010000 (LWP 100221/netsurf)]
__sbmaskrune (_c=114, _f=16384) at _ctype.h:108
108                    _CurrentRuneLocale->__runetype[_c] & _f;
Current language:  auto; currently minimal
(gdb) where
#0  __sbmaskrune (_c=114, _f=16384) at _ctype.h:108
#1  0x0013bebc in __sbistype (_c=114, _f=16384) at _ctype.h:120
#2  0x001366ec in nsurl__get_string_markers (url_s=0x2117d5 "resource:favicon.ico", 
    markers=0xbfbfe090, joining=false) at utils/nsurl.c:258
#3  0x00136410 in nsurl_create (url_s=0x2117d5 "resource:favicon.ico", url=0xbfbfe130)
    at utils/nsurl.c:1243
#4  0x0007848c in browser_window_update_favicon (c=0x226b9ed0, bw=0x220629a0, link=0x0)
    at desktop/browser.c:1140
#5  0x000749d8 in $a.40 () at desktop/browser.c:1313
#6  0x000749d8 in $a.40 () at desktop/browser.c:1313
(gdb) The program is running.  Exit anyway? (y or n) y
Comment 11 Michael Moll freebsd_committer freebsd_triage 2015-12-04 21:02:13 UTC
(In reply to Ulrich Grey from comment #10)
does your portstree contain r402922?
Comment 12 Ulrich Grey 2015-12-04 21:08:26 UTC
(In reply to Michael Moll from comment #11)

Last Changed Rev: 402914
Last Changed Date: 2015-12-04 09:51:00 +0000 (Fri, 04 Dec 2015)
Comment 13 Michael Moll freebsd_committer freebsd_triage 2015-12-04 21:11:39 UTC
please update yoour portrtree to r402922 or higher. I'm unsure but that iconv change might be related to that locale problem.
Comment 14 Ulrich Grey 2015-12-04 23:22:04 UTC
(In reply to Michael Moll from comment #13)
I have updated the ports tree to rev. 403010 and recompiled. It's almost the same.
I GUESS, it's an unaligned access, like in bug #200053 comment #1

Program received signal SIGBUS, Bus error.
[Switching to Thread 22010000 (LWP 100130/netsurf)]
__sbmaskrune (_c=114, _f=16384) at _ctype.h:108
108                    _CurrentRuneLocale->__runetype[_c] & _f;
Current language:  auto; currently minimal
(gdb) where
#0  __sbmaskrune (_c=114, _f=16384) at _ctype.h:108
#1  0x0013bebc in __sbistype (_c=114, _f=16384) at _ctype.h:120
#2  0x001366ec in nsurl__get_string_markers (url_s=0x2117d5 "resource:favicon.ico", 
    markers=0xbfbfe0b0, joining=false) at utils/nsurl.c:258
#3  0x00136410 in nsurl_create (url_s=0x2117d5 "resource:favicon.ico", url=0xbfbfe150)
    at utils/nsurl.c:1243
#4  0x0007848c in browser_window_update_favicon (c=0x226beed0, bw=0x22062a80, link=0x0)
    at desktop/browser.c:1140
#5  0x000749d8 in $a.40 () at desktop/browser.c:1313
#6  0x000749d8 in $a.40 () at desktop/browser.c:1313
(gdb) The program is running.  Exit anyway? (y or n) y
Comment 15 Michael Moll freebsd_committer freebsd_triage 2015-12-06 12:57:18 UTC
I'm a out of ideas (mainly because of lacking low-level and C skills). One thing I noted is that I do turn off NLS in all my ports on arm, which could explain that my crash is a different one.

Anyway, it would be good to have the netsurf port updated to the most recent upstream version and hope (because of their exposure on Linux/arm) some of these bugs got fixed.