Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

dhcpcd5: FTBFS on Hurd-i386

1 view
Skip to first unread message

Martin-Éric Racine

unread,
Jul 1, 2022, 5:30:03 AM7/1/22
to
Greetings,

dhcpcd5 FTBFS on Hurd-i386:

Makefile:55: warning: ignoring prerequisites on suffix rule definition
cc -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=.
-fstack-protector-strong -Wformat -Werror=format-security -std=c99
-Wdate-time -D_FORTIFY_SOURCE=2 -I/include -DHAVE_CONFIG_H -DNDEBUG
-DINET -DARP -DARPING -DIPV4LL -DINET6 -DDHCP6 -DAUTH -DPRIVSEP -I..
-I../src -I./crypt -c common.c -o common.o
In file included from ../config.h:24,
from dhcpcd.h:37,
from common.c:40:
../compat/rbtree.h:50:10: fatal error: sys/endian.h: No such file or directory
50 | #include <sys/endian.h>
| ^~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [Makefile:55: common.o] Error 1
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src'
make[1]: *** [Makefile:24: all] Error 2
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
dh_auto_build: error: make -j1 returned exit code 2
make: *** [debian/rules:6: binary-arch] Error 255

Would anyone have a fix for this? Thanks!

Martin-Éric

Samuel Thibault

unread,
Jul 1, 2022, 5:50:03 AM7/1/22
to
Hello,

Martin-Éric Racine, le ven. 01 juil. 2022 12:01:24 +0300, a ecrit:
> ../compat/rbtree.h:50:10: fatal error: sys/endian.h: No such file or directory
> 50 | #include <sys/endian.h>
> | ^~~~~~~~~~~~~~

Probably <endian.h> can be used instead?

Samuel

Martin-Éric Racine

unread,
Jul 1, 2022, 11:50:03 AM7/1/22
to
> ../compat/rbtree.h:50:10: fatal error: sys/endian.h: No such file or directory
> 50 | #include <sys/endian.h>
> Probably <endian.h> can be used instead?

Would you have a patch I could test on Debian and later submit to upstream?

Martin-Éric

Martin-Éric Racine

unread,
Jul 8, 2022, 8:30:03 AM7/8/22
to
(non-subscriber; please keep me in CC)
This seems to be the relevant ./configure fragment:

*****
if [ -z "$BE64ENC" ]; then
printf "Testing for be64enc ... "
cat <<EOF >_be64enc.c
#include <sys/endian.h>
#include <stdlib.h>
int main(void) {
be64enc(NULL, 0);
return 0;
}
EOF
if $XCC _be64enc.c -o _be64enc 2>&3; then
BE64ENC=yes
else
BE64ENC=no
fi
echo "$BE64ENC"
rm -f _be64enc.c _be64enc
fi
if [ "$BE64ENC" = no ]; then
echo "#include \"compat/endian.h\"" >>$CONFIG_H
fi
*****

Martin-Éric

Martin-Éric Racine

unread,
Jul 28, 2022, 3:00:03 PM7/28/22
to
On Fri, Jul 8, 2022 at 3:11 PM Martin-Éric Racine
Actually, where it barfs is here:

#if !defined(__linux__) && !defined(__QNX__) && !defined(__sun)
#include <sys/endian.h>
#else
#include "endian.h"
#endif

What is the equivalent define for Hurd?

>From what I could google, __GNU__ or __MACH__ might be possible
choices, but I'm not sure which one applies here.

Martin-Éric

Samuel Thibault

unread,
Jul 28, 2022, 3:40:02 PM7/28/22
to
Martin-Éric Racine, le jeu. 28 juil. 2022 21:30:42 +0300, a ecrit:
> Actually, where it barfs is here:
>
> #if !defined(__linux__) && !defined(__QNX__) && !defined(__sun)
> #include <sys/endian.h>
> #else
> #include "endian.h"
> #endif
>
> What is the equivalent define for Hurd?

It's just the same on the Hurd as on Linux, since that's just coming
from glibc.

Samuel

Martin-Éric Racine

unread,
Jul 29, 2022, 2:10:03 AM7/29/22
to
Yet it FTBFS on Hurd at that precise point. That suggets we need to
patch that spot. Not knowing Hurd, I have no idea what the correct
fragment would be.

Martin-Éric

Jeffrey Walton

unread,
Jul 29, 2022, 2:30:02 AM7/29/22
to
If you want the Mach kernel, use __MACH__. If you want GNU Hurd, use
__GNU__ or __gnu_hurd__.

The Pre-defined Operating System Macros list at Sourceforge is usually
reliable. Also see
https://sourceforge.net/p/predef/wiki/OperatingSystems/ .

Jeff

Martin-Éric Racine

unread,
Jul 29, 2022, 4:00:02 AM7/29/22
to
Upstream says:

"Hurd is not a supported OS. At a minimum it would need an equivalent
of if-bsd.c being ported."

Does that ring any bell?

Martin-Éric

Samuel Thibault

unread,
Jul 29, 2022, 4:10:03 AM7/29/22
to
Martin-Éric Racine, le ven. 29 juil. 2022 10:35:38 +0300, a ecrit:
> "Hurd is not a supported OS. At a minimum it would need an equivalent
> of if-bsd.c being ported."
>
> Does that ring any bell?

The Hurd has a very BSD-ish interface, so starting from if-bsd.c is
probably a good idea.

Samuel

Martin-Éric Racine

unread,
Jul 29, 2022, 4:50:03 AM7/29/22
to
See https://github.com/NetworkConfiguration/dhcpcd/issues/109

Feel free to comment and send patches.

Martin-Éric
0 new messages