coreutils/date.c with FEATURE_DATE_NANO=y broken?

Cristian Ionescu-Idbohrn cristian.ionescu-idbohrn at axis.com
Wed Jun 16 20:49:15 UTC 2010


On Mon, 7 Jun 2010, Denys Vlasenko wrote:

> On Sunday 06 June 2010 22:34, Douglas Mencken wrote:
> > > Please try current git.
> >
> > Well, okay. Current GIT master: 1_12_0-2099-gc8aae0b (By the way: is
> > it so hard to define git tags? Really is? 1_12_0 << current tag!
> > 1.12.0!)
> >
> >   CC      coreutils/date.o
> > coreutils/date.c: In function 'date_main':
> > coreutils/date.c:210:23: error: 'struct stat' has no member named 'st_mtimensec'
> > make[1]: *** [coreutils/date.o] Error 1
> > make: *** [coreutils] Error 2
> > ERROR: 'make' error. Abort.
> > build directory ('/root/build-farm/busybox-2099-gc8aae0b.builddir')
> > left untouched (errors)
> >
> > Okay, again: I'm on uClibc, I'm building it from latest git master
> > branches (before I used nptl branches). My uClibc is
> > nptl_merge-35-g139b8f0. Maybe you can attach your uClibc config to
> > start from? I did research, I posted all of my steps on this research,
> > but you continue to claim "uClibc is okay, glibc is not". This is
> > wrong. uClibc is not "okay".
> >
> > This is not uClibc vs GNU lib C issue. It's compatibility issue. Let
> > me guess: you are on x86 or x86_64 host, right? I'm not. You are using
> > some "defconfig" or "allnoconfig"? I'm not.
> >
> > So, re-read my message, please. Post your uClibc config. Post your
> > /usr/include/features.h.
> > Post your pre-processed date.c. Post what's wrong with building with
> > my patch. Do you have __USE_MISC anywhere? Otherwise, it will be "it
> > works for me, so it is okay, get off, don't bother me, it works for me
> > and only me, so I'm happy".
>
> Please see attached.

Looks still broken.  Won't build with eglibc 2.11.2 on a debian box.

  LINK    busybox_unstripped
Trying libraries: crypt m
Failed: -Wl,--start-group -lcrypt -lm -Wl,--end-group
Output of:
gcc -Wall -Wshadow -Wwrite-strings -Wundef -Wstrict-prototypes -Wunused
-Wunused-parameter -Wunused-function -Wunused-value -Wmissing-prototypes
-Wmissing-declarations -Wdeclaration-after-statement
-Wold-style-definition -fno-builtin-strlen -finline-limit=0
-fomit-frame-pointer -ffunction-sections -fdata-sections
-fno-guess-branch-probability -funsigned-char -static-libgcc
-falign-functions=1 -falign-jumps=1 -falign-labels=1 -falign-loops=1 -g
-O0 -march=i386 -mpreferred-stack-boundary=2 -o busybox_unstripped
-Wl,--sort-common -Wl,--sort-section,alignment -Wl,--gc-sections
-Wl,--start-group applets/built-in.o archival/lib.a
archival/libunarchive/lib.a console-tools/lib.a coreutils/lib.a
coreutils/libcoreutils/lib.a debianutils/lib.a e2fsprogs/lib.a
editors/lib.a findutils/lib.a init/lib.a libbb/lib.a libpwdgrp/lib.a
loginutils/lib.a mailutils/lib.a miscutils/lib.a modutils/lib.a
networking/lib.a networking/libiproute/lib.a networking/udhcp/lib.a
printutils/lib.a procps/lib.a runit/lib.a selinux/lib.a shell/lib.a
sysklogd/lib.a util-linux/lib.a util-linux/volume_id/lib.a
archival/built-in.o archival/libunarchive/built-in.o
console-tools/built-in.o coreutils/built-in.o
coreutils/libcoreutils/built-in.o debianutils/built-in.o
e2fsprogs/built-in.o editors/built-in.o findutils/built-in.o
init/built-in.o libbb/built-in.o libpwdgrp/built-in.o
loginutils/built-in.o mailutils/built-in.o miscutils/built-in.o
modutils/built-in.o networking/built-in.o networking/libiproute/built-in.o
networking/udhcp/built-in.o printutils/built-in.o procps/built-in.o
runit/built-in.o selinux/built-in.o shell/built-in.o sysklogd/built-in.o
util-linux/built-in.o util-linux/volume_id/built-in.o -Wl,--end-group
-Wl,--start-group -lcrypt -lm -Wl,--end-group
==========
coreutils/lib.a(date.o): In function `date_main':
/home/cii/DEVEL/busybox-git/busybox/coreutils/date.c:211: undefined
reference to `clock_gettime'
collect2: ld returned 1 exit status
make: *** [busybox_unstripped] Error 1

Other code around similar call I find:

./libbb/time.c: if (syscall(__NR_clock_gettime, CLOCK_MONOTONIC, ts))
./libbb/time.c:         bb_error_msg_and_die("clock_gettime(MONOTONIC) failed");
./runit/runsv.c:        syscall(__NR_clock_gettime, CLOCK_REALTIME, ts);
./coreutils/date.c:             clock_gettime(CLOCK_REALTIME, &ts);

Any ideas?


Cheers,

-- 
Cristian


More information about the busybox mailing list