On Friday 26 August 2011 03:34, Matthias Andree wrote:
> - in kconfig, note that #define _XOPEN_SOURCE 700 prevents the
>   definition of SIGWINCH on FreeBSD, as that's a BSD-specific signal.
>   I don't know what the best fix is, thus no patch.

Neither do I.


> - several files lack inclusion of libgen.h, causing complaints like
> these for dirname. All files that call dirname must #include <libgen.h>.

> coreutils/rmdir.c: In function 'rmdir_main':
> coreutils/rmdir.c:72: warning: implicit declaration of function 'dirname'
> coreutils/rmdir.c:72: warning: assignment makes pointer from integer
> without a cast

Well, "man dirname" says:

       With glibc, one gets the POSIX version of basename() when <libgen.h> is
       included, and the GNU version otherwise.

which means that include <libgen.h> is not such a simple matter.

libbb.h says:

/* This is declared here rather than #including <libgen.h> in order to avoid
 * confusing the two versions of basename.  See the dirname/basename man page
 * for details. */
#if !defined __FreeBSD__
char *dirname(char *path);
#endif

Should we simply remove "#if !defined __FreeBSD_"?

 
> libbb/speed_table.c:46: warning: large integer implicitly truncated to
> unsigned type
> libbb/speed_table.c:49: warning: large integer implicitly truncated to
> unsigned type
> libbb/speed_table.c:52: warning: large integer implicitly truncated to
> unsigned type
> libbb/speed_table.c:55: warning: large integer implicitly truncated to
> unsigned type

Does this go away if you add (unsinged short) cast before
Bnnnnnn constants?


> - note that find.c cannot be compiled with clang:
> 
> gmake -f scripts/Makefile.build obj=findutils
>   clang -Wp,-MD,findutils/.find.o.d   -std=gnu99 -Iinclude -Ilibbb
> -include include/autoconf.h -D_GNU_SOURCE -DNDEBUG -D_LARGEFILE_SOURCE
> -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
> -D"BB_VER=KBUILD_STR(1.19.0)" -DBB_BT=AUTOCONF_TIMESTAMP -O2 -pipe
> -fno-strict-aliasing -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 -Os     -D"KBUILD_STR(s)=#s"
> -D"KBUILD_BASENAME=KBUILD_STR(find)"
> -D"KBUILD_MODNAME=KBUILD_STR(find)" -c -o findutils/find.o findutils/find.c
> ...
> findutils/find.c:896:2: error: illegal storage class on function
>         auto action* alloc_action(int sizeof_struct, action_fp f);
>         ^
> findutils/find.c:897:54: error: expected ';' at end of declaration
>         action* alloc_action(int sizeof_struct, action_fp f)
>                                                             ^
>                                                             ;

Bug in clang. auto is a valid storate class.


> Can this be fixed for the next release?

So far all freebsd related fixes are in this:

http://busybox.net/downloads/fixes-1.19.0/busybox-1.19.0-freebsd.patch

-- 
vda
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to