MantisBT - Buildsystem
View Issue Details
0002824Buildsystem[All Projects] Generalpublic2021-06-05 22:392021-07-05 16:27
Assigned To 
PlatformOSGNU/HurdOS Version
Fixed in CI build #
Reported in CI build #
Summary0002824: Porting to GNU/Hurd
DescriptionNetsurf 3.10 does not build on GNU/Hurd due to 2 documented issues:
GNU/Hurd uses the mach kernel but is not Apple and can use function clock_gettime()

The macro PATH_MAX is not defined in POSIX and is not present in GNU/Hurd

The attached patch addresses these two issues. For the latter case, the string size is allocated dynamically using functions of the asprinf() family and realpath() called with the NULL argument. I don't know if these functions are present and work as intended on all platforms that Netsurf builds on. If this patch creates problems for other OS, would you consider using the Gnulib functions?

The patch was created against version 3.10 on Debian.

With this patch, the functions filepath_find() and filepath_sfind() have become pretty much equivalent. I have not suppressed either to keep the patch minimal and to let you decide what you would like to do.
TagsNo tags attached.
Attached Filespatch fix_ftbfs_hurd.patch (13,179) 2021-06-05 22:39
? fix_ftbfs_hurd.patch2 (13,346) 2021-07-05 16:27

John Scott   
2021-06-29 20:31   
Note that, since the pathlength is unlimited on GNU/Linux systems as well, it's technically a bug and a POSIX violation that PATH_MAX is defined there in the first place. Hence fixing the reliance on the definition of PATH_MAX is beneficial not just to enable builds on GNU/Hurd, but for correctness on any system with unlimited path lengths.
2021-07-05 16:27   
Uploading an updated patch after discussion in the debian-hurd mailing list

Issue History
2021-06-05 22:39JoãoNew Issue
2021-06-05 22:39JoãoFile Added: fix_ftbfs_hurd.patch
2021-06-29 20:31John ScottNote Added: 0002344
2021-07-05 16:27JoãoFile Added: fix_ftbfs_hurd.patch2
2021-07-05 16:27JoãoNote Added: 0002345