Re: compiling skalibs-1.4.1

From: Laurent Bercot <ska-skaware_at_skarnet.org>
Date: Sat, 12 Oct 2013 20:43:35 +0100

  Hi Jorge,


> iobufferk_fill.c: In function 'iobufferk_tee':
> iobufferk_fill.c:14:3: warning: implicit declaration of function 'tee'
> [-Wimplicit-function-declaration]

  That one is a sloppy implementation of features_test_macros in the libc,
nothing I can do about it.


> ip46_scanlist.c: In function 'ip46full_scanlist':
> ip46_scanlist.c:15:13: error: 'ip46_t' has no member named 'is6'
> ip46_scanlist.c:20:8: error: 'ip46_t' has no member named 'is6'
> ip46_scanlist.c:22:12: error: incompatible types when assigning to type
> 'struct ip46full_s' from type 'ip46_t'
> make[2]: *** [ip46_scanlist.o] Error 1

  That one is a bug. I'll get a patched version out as soon as I get some time.
In the meantime, replace the "ip46_t z ;" line with "ip46full_t z ;" in
ip46_scanlist.c and that should do it.


> Even if it compiled, I'm having doubts about using dietlibc for this.
> The problem is that dietlibc ignores right timezones, so maybe software
> that uses right timezones would be silently broken?

  I have the exact same problem with uClibc: it doesn't handle right/
timezones. That is why I have separated the flag-clockistai and
flag-tzisright compilation options. If you diet-compile skalibs
with flag-clockistai and *without* flag-tzisright, and set your
system clock to TAI-10, then skarnet.org software will compute and
display time properly despite your timezone being POSIX instead of
right/. However, other time-handling software that do not use the
skalibs workaround will believe your system clock to be UTC, and manage
it incorrectly.


> I have musl installed, and I used it to statically compile bash (to put in
> my initramfs_cum_emergency_system...)

  You're not using a busybox shell for your emergency system ? :o


> exec ./compile tryclockrt.c
> tryclockrt.c: In function 'main':
> tryclockrt.c:8:19: error: storage size of 'ts' isn't known
> tryclockrt.c:9:3: warning: implicit declaration of function
> 'clock_gettime' [-Wimplicit-function-declaration]
> tryclockrt.c:9:21: error: 'CLOCK_REALTIME' undeclared (first use in this
> function)
> tryclockrt.c:9:21: note: each undeclared identifier is reported only
> once for each function it appears in
> tryclockrt.c:8:19: warning: unused variable 'ts' [-Wunused-variable]
> make[1]: *** [hasclockrt.h] Error 1

  That's a problem with musl, and I didn't detect it because the
musl-gcc wrapper is leaking and I tested on a system with glibc, so
my compilation defaulted to the glibc definition.
(It's actually impossible to make a small gcc wrapper without leaking.
I'm waiting impatiently for Aboriginal Linux to switch to musl, so I can
use a native non-leaking musl toolchain.)

  Does the problem go away if you compile with -D_POSIX_SOURCE ? That
could be an easy workaround.


>> (The only problem I got was s6-devd (in s6-linux-utils) where musl just
>> needs an additional set of kernel headers to find linux/netlink.h.)
> This one would be sort of a show-stopper for us amateur folks... (I
> actually have a use for s6-devd :))

  It didn't stop me. ;)
  I asked for linux/netlink.h on the musl mailing-list, and I was pointed
to the Sabotage multi-arch kernel headers tarball:
http://ftp.barfooze.de/pub/sabotage/tarballs/kernel-headers-3.3.4-1.tar.gz
I unpacked it, linked my linux/ include subdir to the right place, and s6-devd
compiled.


> #!/command/execlineb -P
> pipeline { echo blah }
>
> The syntax error is not detected and it segfaults.

  Ew. Thanks for the report. I will investigate and fix that as soon as
possible.

-- 
  Laurent
Received on Sat Oct 12 2013 - 19:43:35 UTC

This archive was generated by hypermail 2.3.0 : Sun May 09 2021 - 19:38:49 UTC