Menu

#25 implicitly declaring library function 'exit'

1.0
closed
nobody
None
2020-11-29
2020-10-02
No

Hi, I'm using Xcode 12.2 beta 2 on macOS, and I downloaded schily-2020-09-22.tar.bz2 and ran make in the top-level directory. It failed, and the reason appears to be that the configure script misdetected the availability of some OS functions due to not including all the required headers for the tests, for example:

configure:19547: checking if mbrtowc is defined or function
configure:19570: gcc -o conftest -g -O2  conftest.c   1>&5
configure:19565:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
        exit (p != (char *)0 && *p != 0);
        ^
configure:19565:2: note: include the header <stdlib.h> or explicitly provide a declaration for 'exit'
1 error generated.
configure: failed program was:
#line 19552 "configure"
#include "confdefs.h"

#ifdef  HAVE_WCHAR_H
#include <wchar.h>
#endif
#ifdef  HAVE_WCTYPE_H
#include <wctype.h>
#endif

int main() {

#ifndef mbrtowc
        char *p = (char *) mbrtowc;
        exit (p != (char *)0 && *p != 0);
#endif
; return 0; }

Starting in Xcode 12, implicit declaration is an error whereas previously it was just a warning. It should be fixed by including the necessary headers.

Having misidentified whether these functions are available at configure time, the build fails later on when your definition of one of the functions collides with the one defined in the system headers, for example:

In file included from fnmatch.c:70:
In file included from ../include/schily/wchar.h:69:
/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/wchar.h:123:8: error: conflicting types for 'wctomb'
size_t  wcrtomb(char * __restrict, wchar_t, mbstate_t * __restrict);
        ^
../include/schily/wchar.h:64:30: note: expanded from macro 'wcrtomb'
#define wcrtomb(cp, wc, sp)             wctomb(cp, wc)
                                        ^
/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/stdlib.h:195:6: note: previous declaration is here
int      wctomb(char *, wchar_t);
         ^

Discussion

  • Jörg Schilling

    Jörg Schilling - 2020-11-10

    Sorry for the delay, your report arrived at a time where I did not immediately reply and I then forgot about it.

    I believe a related fix would need in depth testing, since this is a behavior that differs from historic behavior.

    In special, checking for other possible occurrences of "error: implicitly" in config.log.

    Should I just include the changes in the next regular release or do you like to check the current state?

     
  • Ryan Carsten Schmidt

    If you have a fix you'd like me to test before release I can do that.

     
  • Jörg Schilling

    Jörg Schilling - 2020-11-10

    OK, I copied the new configure file to the schilytools download area.

    I'll remove that file this evening in order to avoid confusion for other users.

     
  • Ryan Carsten Schmidt

    Do you mean https://sourceforge.net/projects/schilytools/files/? I don't see a separate configure file there.

    You could attach a file to this ticket if you want.

     
  • Jörg Schilling

    Jörg Schilling - 2020-11-10

    Sorry, I copied the file to schillix by mistake. it is now where you expect it.

    Please try again.

     
  • Ryan Carsten Schmidt

    I downloaded the new configure file and put it into the autoconf directory of schily-2020-11-04 and ran make. It failed with:

    In file included from cdda2wav.c:102:
    ./mytype.h:29:1: error: unknown type name 'error'
    error need an integer type with 32 bits, but do not know one!
    ^
    

    Earlier in the configure output I see:

    checking size of char... 0
    checking size of short int... 0
    checking size of int... 0
    checking size of long int... 0
    checking size of long long... 0
    checking size of __int64... 0
    checking size of char *... 0
    checking size of unsigned char... 0
    checking size of unsigned short int... 0
    checking size of unsigned int... 0
    checking size of unsigned long int... 0
    checking size of unsigned long long... 0
    checking size of unsigned __int64... 0
    checking size of unsigned char *... 0
    checking size of float... 0
    checking size of double... 0
    checking size of long double... 0
    checking size of size_t... 0
    checking size of ssize_t... 0
    checking size of ptrdiff_t... 0
    checking size of mode_t... 0
    checking size of uid_t... 0
    checking size of gid_t... 0
    checking size of pid_t... 0
    checking size of dev_t... 0
    checking size of major_t... 0
    checking size of minor_t... 0
    checking size of time_t... SIZEOF_LONG_INT
    checking size of wchar... 0
    checking size of wchar_t... 4
    

    For example the test for size of char failed because:

    configure:8341: checking size of char
    configure:8366: clang -o conftest   -O    -I/usr/local/include    conftest.c -Llibs/arm64-darwin-clang -L/usr/local/lib -framework IOKit -framework CoreFoundation  1>&5
    configure:8357:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
    main()
    ^
    configure:8360:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
      if (!f) exit(1);
              ^
    configure:8360:11: note: include the header <stdlib.h> or explicitly provide a declaration for 'exit'
    configure:8361:22: warning: format specifies type 'int' but the argument has type 'unsigned long' [-Wformat]
      fprintf(f, "%d\n", sizeof(char));
                  ~~     ^~~~~~~~~~~~
                  %lu
    2 warnings and 1 error generated.
    

    You could either #include <stdlib.h> or change exit() to return.

    Using grep on the config.log I see 132 implicit function declarations, most of which probably need to be fixed.

    configure:2183:67: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:5265:10: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:5355:1: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:5395:1: error: implicit declaration of function '_filbuf' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:5396:1: error: implicit declaration of function '_flsbuf' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:5440:1: error: implicit declaration of function '__filbuf' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:5441:1: error: implicit declaration of function '__flsbuf' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:5605:36: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:6072:1: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:6284:7: error: implicit declaration of function 'getgroups' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:6288:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:6442:1: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:7378:55: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:7447:29: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:7486:32: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:8360:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:8405:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:8450:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:8495:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:8540:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:8585:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:8630:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:8676:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:8721:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:8766:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:8811:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:8856:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:8901:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:8946:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:8991:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:9036:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:9081:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:9127:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:9172:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:9217:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:9263:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:9308:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:9353:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:9398:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:9444:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:9489:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:9534:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:9585:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:9624:11: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:9715:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:10452:48: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:11157:21: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:11375:27: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:11410:28: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:11463:11: error: implicit declaration of function 'fork' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:11465:5: error: implicit declaration of function 'sleep' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:11466:30: error: implicit declaration of function 'getpid' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:11467:5: error: implicitly declaring library function '_exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:11470:5: error: implicit declaration of function 'wait3' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:11472:5: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:11520:6: error: implicit declaration of function 'mlock' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:11523:4: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:11576:4: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:11702:2: error: implicitly declaring library function 'strcpy' with type 'char *(char *, const char *)' [-Werror,-Wimplicit-function-declaration]
    configure:11711:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:11711:8: error: implicitly declaring library function 'strcmp' with type 'int (const char *, const char *)' [-Werror,-Wimplicit-function-declaration]
    configure:11752:2: error: implicitly declaring library function 'strcpy' with type 'char *(char *, const char *)' [-Werror,-Wimplicit-function-declaration]
    configure:11761:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:11761:8: error: implicitly declaring library function 'strcmp' with type 'int (const char *, const char *)' [-Werror,-Wimplicit-function-declaration]
    configure:11802:2: error: implicitly declaring library function 'strcpy' with type 'char *(char *, const char *)' [-Werror,-Wimplicit-function-declaration]
    configure:11811:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:11811:8: error: implicitly declaring library function 'strcmp' with type 'int (const char *, const char *)' [-Werror,-Wimplicit-function-declaration]
    configure:11892:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:11936:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:12096:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:12098:17: error: implicit declaration of function 'rand' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:12099:2: error: implicit declaration of function 'umask' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:12322:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:12324:17: error: implicit declaration of function 'rand' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:12325:2: error: implicit declaration of function 'umask' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:12652:17: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:12653:9: error: implicit declaration of function 'close' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:12666:17: error: implicit declaration of function 'fork' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:12669:17: error: implicitly declaring library function 'printf' with type 'int (const char *, ...)' [-Werror,-Wimplicit-function-declaration]
    configure:12673:17: error: implicitly declaring library function '_exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:12676:17: error: implicit declaration of function 'wait' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:12677:17: error: implicit declaration of function 'sleep' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:12730:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:13422:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:13464:6: error: implicit declaration of function 'getpgrp' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:13465:38: error: implicit declaration of function 'getpid' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:13466:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:13512:5: error: implicit declaration of function 'setpgrp' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:13513:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:13699:1: error: implicitly declaring library function 'sprintf' with type 'int (char *, const char *, ...)' [-Werror,-Wimplicit-function-declaration]
    configure:13700:5: error: implicitly declaring library function 'strcmp' with type 'int (const char *, const char *)' [-Werror,-Wimplicit-function-declaration]
    configure:13701:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:13742:1: error: implicitly declaring library function 'sprintf' with type 'int (char *, const char *, ...)' [-Werror,-Wimplicit-function-declaration]
    configure:13743:5: error: implicitly declaring library function 'strcmp' with type 'int (const char *, const char *)' [-Werror,-Wimplicit-function-declaration]
    configure:13744:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:13784:1: error: implicitly declaring library function 'sprintf' with type 'int (char *, const char *, ...)' [-Werror,-Wimplicit-function-declaration]
    configure:13785:5: error: implicitly declaring library function 'strcmp' with type 'int (const char *, const char *)' [-Werror,-Wimplicit-function-declaration]
    configure:13786:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:19796:2: error: implicit declaration of function 'write' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:19798:2: error: implicitly declaring library function '_exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:19809:2: error: implicitly declaring library function 'strdup' with type 'char *(const char *)' [-Werror,-Wimplicit-function-declaration]
    configure:19814:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:19854:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:19938:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:19979:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:20020:2: error: implicit declaration of function 'unlink' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:20024:6: error: implicit declaration of function 'symlink' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:20026:6: error: implicit declaration of function 'link' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:20032:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:20077:2: error: implicit declaration of function 'unlink' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:20081:6: error: implicit declaration of function 'creat' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:20082:2: error: implicit declaration of function 'close' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:20083:6: error: implicit declaration of function 'symlink' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:20085:6: error: implicit declaration of function 'link' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    configure:20096:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:20219:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:20310:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:20623:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:20623:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:20623:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:24607:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:24607:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:24607:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:24661:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:24661:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:24661:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:24715:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:24715:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:24715:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:24769:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:24769:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    configure:24769:2: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    
     
  • Jörg Schilling

    Jörg Schilling - 2020-11-12

    It seems that Apple is destroying the base of configure...

    The assumption is that a missing function prototype only results in a warning.

    First,I would need to do some research in order to verify what happens when using return in main() and whether this is usable at all with very old compilers...

     
  • Jörg Schilling

    Jörg Schilling - 2020-11-13

    Hi,

    yesterday I had a discussion with a friend regarding return in main() and older C-compilers.
    We now believe that the main thing that was different in the 1980s as that the end of main() had a piece of special code that emulated a return 0, in case there was no return.

    So we now believe that it is possible to replace exit by return without destroying portability.

    There is a new "configure" script for testing in the schilytools download.

    Could you please test that and check foe remaining errors from missing prototypes?

    I expect more than 90% of these errors to have gone with the new configure.

     
  • Jörg Schilling

    Jörg Schilling - 2020-11-13

    Hi, I just uploaded a new version of configure that adds some more #include statements in hope to find nearly all problems.

     
  • Jörg Schilling

    Jörg Schilling - 2020-11-25

    A new version of schilytools has been published. If there are no remaining problems, I will close this bug in a few days.

     
  • Jörg Schilling

    Jörg Schilling - 2020-11-29
    • status: open --> closed
     
  • Jörg Schilling

    Jörg Schilling - 2020-11-29

    Given that there is no new feedback since more than two weeks,
    I assume that the recent changes fixed the problem.

    Feel free to send a new but report if the problem still exists.

     

Log in to post a comment.

MongoDB Logo MongoDB