[dropped bug-diffutils from CC] > > Haiku, like BeOS have O_BINARY and O_TEXT but they have no effect: > > http://www.mail-archive.com/bug-gnulib@gnu.org/msg12137.html
Yes, and gnulib's binary-io.h undefines O_BINARY and O_TEXT on Haiku for this reason. > > --- diffutils-3.0/gnulib-tests/test-dup2.c 2010-04-15 13:42:07.036700160 > > +0000 > > +++ diffutils-3.0-haiku/gnulib-tests/test-dup2.c 2010-10-06 > > 11:17:38.000000000 +0000 > > @@ -176,6 +176,7 @@ > > > > /* On systems that distinguish between text and binary mode, dup2 > > reuses the mode of the source. */ > > +#if O_BINARY > > setmode (fd, O_BINARY); > > ASSERT (is_mode (fd, O_BINARY)); > > ASSERT (dup2 (fd, fd + 1) == fd + 1); > > @@ -190,6 +191,6 @@ > > ASSERT (close (fd + 1) == 0); > > ASSERT (close (fd) == 0); > > ASSERT (unlink (file) == 0); > > - > > +#endif > > return 0; > > } > > --- diffutils-3.0/gnulib-tests/test-fcntl.c 2010-04-15 13:42:08.027787264 > > +0000 > > +++ diffutils-3.0-haiku/gnulib-tests/test-fcntl.c 2010-10-06 > > 11:21:54.000000000 +0000 > > @@ -298,6 +298,7 @@ > > ASSERT (is_mode (fd + 2, O_BINARY)); > > ASSERT (close (fd) == 0); > > > > +#if O_TEXT > > setmode (fd + 2, O_TEXT); > > ASSERT (fcntl (fd + 2, F_DUPFD, fd + 1) == fd + 1); > > ASSERT (!is_open (fd)); > > @@ -318,7 +319,7 @@ > > ASSERT (is_mode (fd, O_TEXT)); > > ASSERT (is_mode (fd + 2, O_TEXT)); > > ASSERT (close (fd + 2) == 0); > > - > > +#endif > > /* Test F_GETFD. */ > > errno = 0; > > ASSERT (fcntl (-1, F_GETFD) == -1); Why do you need this? These two test files include "binary-io.h", which undefines O_BINARY and O_TEXT, and then setmode gets defined to a function that returns 0. Can you show the errors that you got and the preprocessed ("gcc -E") source code of one of these test files? > > Also on Haiku and BeOS SIGSEGV is the same as SIGBUS: > > http://dev.haiku-os.org/browser/haiku/trunk/headers/posix/signal.h (line > > 132) > > diff -urN diffutils-3.0/gnulib-tests/test-signal.c > > diffutils-3.0-haiku/gnulib-tests/test-signal.c > > --- diffutils-3.0/gnulib-tests/test-signal.c 2010-04-15 > > 13:42:09.030932992 +0000 > > +++ diffutils-3.0-haiku/gnulib-tests/test-signal.c 2010-10-06 > > 11:28:31.000000000 +0000 > > @@ -58,7 +58,7 @@ > > #ifdef SIGALRM > > case SIGALRM: > > #endif > > -#ifdef SIGBUS > > +#if defined SIGBUS && !defined(__HAIKU__) > > case SIGBUS: > > #endif > > #ifdef SIGCHLD This is a bug in Haiku. Programs are supposed to be able to set different signal handlers for each signal, which implies that SIGBUS and SIGSEGV must be different. > > 9 of 78 tests failed. (11 tests were not run). > > FAIL: test-btowc1.sh (exit: 134) > > ================================ > > > > test-btowc.c:52: assertion failed > > Abort > > ./test-btowc1.sh: line 15: 431880 Abort > > LC_ALL=$LOCALE_FR ./test-btowc${EXEEXT} 1 Can you show the value of LOCALE_FR in config.status? m4/locale-fr.m4 contains a test program that verifies that LOCALE_FR gets set to a locale with ISO-8859-1 or ISO-8859-15 encoding. But the test program test-btowc.c then appears to encounter an encoding different from ISO-8859-1 and ISO-8859-15. > > FAIL: test-mbrtowc1.sh (exit: 134) > > ================================== > > > > test-mbrtowc.c:143: assertion failed > > Abort > > ./test-mbrtowc1.sh: line 15: 432356 Abort > > LC_ALL=$LOCALE_FR ./test-mbrtowc${EXEEXT} 1 This could be due to an incorrect value of LOCALE_FR, see above. > > FAIL: test-mbsrtowcs1.sh (exit: 134) > > ==================================== > > > > test-mbsrtowcs.c:111: assertion failed > > Abort > > ./test-mbsrtowcs1.sh: line 15: 432436 Abort > > LC_ALL=$LOCALE_FR ./test-mbsrtowcs${EXEEXT} 1 Likewise. > > FAIL: test-wcrtomb.sh (exit: 1) > > =============================== > > > > test-wcrtomb.c:45: assertion failed > > Abort > > ./test-wcrtomb.sh: line 9: 433242 Abort > > LC_ALL=$LOCALE_FR ./test-wcrtomb${EXEEXT} 1 Likewise. > > FAIL: test-c-stack.sh (exit: 1) > > =============================== > > > > ./test-c-stack.sh: line 7: 431920 Segmentation violation > > ./test-c-stack${EXEEXT} 2> t-c-stack.tmp Is the program crashing by NULL dereference or by stack overflow? Why is the c-stack module not working? > > FAIL: test-fcntl (exit: 134) > > ============================ > > > > test-fcntl.c:261: assertion failed > > Abort What is the errno value that you get there, at test-fcntl.c:261? > > FAIL: test-sleep (exit: 134) > > ============================ > > > > test-sleep.c:55: assertion failed > > Abort Is the sleep function provided by Haiku or by gnulib? If by Haiku, then it appears to have a wrong return value. > > FAIL: test-unsetenv (exit: 134) > > =============================== > > > > test-unsetenv.c:44: assertion failed > > Abort Bug in Haiku: unsetenv("a") does not remove all settings of the environment variable "a" from the environment. > > FAIL: test-wcwidth (exit: 134) > > ============================== > > > > test-wcwidth.c:57: assertion failed > > Abort Bug in Haiku: wcwidth (0x05B0) should be 0. Since Haiku is in active development, I'm not going to add workarounds to gnulib. Rather, the Haiku community should fix the bugs that are on Haiku's side. Bruno