Opened 3 years ago

Closed 3 years ago

#61522 closed defect (fixed)

libmcrypt: error: implicitly declaring library function 'calloc'

Reported by: sudheerhebbale (Sudheer Hebbale) Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version:
Keywords: bigsur catalina Cc: sudheerhebbale (Sudheer Hebbale)
Port: libmcrypt

Description (last modified by ryandesign (Ryan Carsten Schmidt))

After upgrading to macOS 11.0.1 installation and build of lbmcrypt fails, with the following error

gost.c:364:12: error: implicitly declaring library function 'calloc' with type 'void *(unsigned long, unsigned long)' [-Werror,-Wimplicit-function-declaration]
gost.c:375:8: error: implicitly declaring library function 'malloc' with type 'void *(unsigned long)' [-Werror,-Wimplicit-function-declaration]
        key = malloc(_mcrypt_get_size());



gost.c:394:3: note: include the header <stdio.h> or explicitly provide a declaration for 'printf'

Log as below

--->  Building libmcrypt
Executing:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libmcrypt/libmcrypt/work/libmcrypt-2.5.8" && /usr/bin/make -j4 -w all 
make: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libmcrypt/libmcrypt/work/libmcrypt-2.5.8'
/Library/Developer/CommandLineTools/usr/bin/make  all-recursive
make[1]: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libmcrypt/libmcrypt/work/libmcrypt-2.5.8'
Making all in modules
make[2]: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libmcrypt/libmcrypt/work/libmcrypt-2.5.8/modules'
Making all in algorithms
make[3]: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libmcrypt/libmcrypt/work/libmcrypt-2.5.8/modules/algorithms'
if /bin/ksh ../../libtool --tag=CC --mode=compile /usr/bin/clang -DHAVE_CONFIG_H  -I. -I. -I../.. -I. -I../..  -I../../lib  -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk  -pipe -Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -arch x86_64 -MT 3-way.lo -MD -MP -MF ".deps/3-way.Tpo" -c -o 3-way.lo 3-way.c; \
	then mv -f ".deps/3-way.Tpo" ".deps/3-way.Plo"; else rm -f ".deps/3-way.Tpo"; exit 1; fi
if /bin/ksh ../../libtool --tag=CC --mode=compile /usr/bin/clang -DHAVE_CONFIG_H  -I. -I. -I../.. -I. -I../..  -I../../lib  -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk  -pipe -Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -arch x86_64 -MT cast-128.lo -MD -MP -MF ".deps/cast-128.Tpo" -c -o cast-128.lo cast-128.c; \
	then mv -f ".deps/cast-128.Tpo" ".deps/cast-128.Plo"; else rm -f ".deps/cast-128.Tpo"; exit 1; fi
if /bin/ksh ../../libtool --tag=CC --mode=compile /usr/bin/clang -DHAVE_CONFIG_H  -I. -I. -I../.. -I. -I../..  -I../../lib  -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk  -pipe -Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -arch x86_64 -MT gost.lo -MD -MP -MF ".deps/gost.Tpo" -c -o gost.lo gost.c; \
	then mv -f ".deps/gost.Tpo" ".deps/gost.Plo"; else rm -f ".deps/gost.Tpo"; exit 1; fi
if /bin/ksh ../../libtool --tag=CC --mode=compile /usr/bin/clang -DHAVE_CONFIG_H  -I. -I. -I../.. -I. -I../..  -I../../lib  -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk  -pipe -Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -arch x86_64 -MT rijndael-128.lo -MD -MP -MF ".deps/rijndael-128.Tpo" -c -o rijndael-128.lo rijndael-128.c; \
	then mv -f ".deps/rijndael-128.Tpo" ".deps/rijndael-128.Plo"; else rm -f ".deps/rijndael-128.Tpo"; exit 1; fi
 /usr/bin/clang -DHAVE_CONFIG_H -I. -I. -I../.. -I. -I../.. -I../../lib -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -pipe -Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -arch x86_64 -MT gost.lo -MD -MP -MF .deps/gost.Tpo -c gost.c  -fno-common -DPIC -o .libs/gost.o
 /usr/bin/clang -DHAVE_CONFIG_H -I. -I. -I../.. -I. -I../.. -I../../lib -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -pipe -Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -arch x86_64 -MT cast-128.lo -MD -MP -MF .deps/cast-128.Tpo -c cast-128.c  -fno-common -DPIC -o .libs/cast-128.o
 /usr/bin/clang -DHAVE_CONFIG_H -I. -I. -I../.. -I. -I../.. -I../../lib -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -pipe -Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -arch x86_64 -MT rijndael-128.lo -MD -MP -MF .deps/rijndael-128.Tpo -c rijndael-128.c  -fno-common -DPIC -o .libs/rijndael-128.o
 /usr/bin/clang -DHAVE_CONFIG_H -I. -I. -I../.. -I. -I../.. -I../../lib -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -pipe -Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -arch x86_64 -MT 3-way.lo -MD -MP -MF .deps/3-way.Tpo -c 3-way.c  -fno-common -DPIC -o .libs/3-way.o
gost.c:364:12: error: implicitly declaring library function 'calloc' with type 'void *(unsigned long, unsigned long)' [-Werror,-Wimplicit-function-declaration]
        keyword = calloc(1, _mcrypt_get_key_size());
                  ^
gost.c:364:12: note: include the header <stdlib.h> or explicitly provide a declaration for 'calloc'
gost.c:375:8: error: implicitly declaring library function 'malloc' with type 'void *(unsigned long)' [-Werror,-Wimplicit-function-declaration]
        key = malloc(_mcrypt_get_size());
              ^
gost.c:375:8: note: include the header <stdlib.h> or explicitly provide a declaration for 'malloc'
gost.c:377:3: error: implicit declaration of function 'free' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                free(keyword);
                ^
gost.c:384:2: error: implicit declaration of function 'free' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
        free(keyword);
        ^
gost.c:389:3: error: implicitly declaring library function 'sprintf' with type 'int (char *, const char *, ...)' [-Werror,-Wimplicit-function-declaration]
                sprintf(&((char *) cipher_tmp)[2 * j], "%.2x",
                ^
gost.c:389:3: note: include the header <stdio.h> or explicitly provide a declaration for 'sprintf'
gost.c:394:3: error: implicitly declaring library function 'printf' with type 'int (const char *, ...)' [-Werror,-Wimplicit-function-declaration]
                printf("failed compatibility\n");
                ^
gost.c:394:3: note: include the header <stdio.h> or explicitly provide a declaration for 'printf'
rijndael-128.c:446:12: error: implicitly declaring library function 'calloc' with type 'void *(unsigned long, unsigned long)' [-Werror,-Wimplicit-function-declaration]
3-way.c:294:12: error: implicitly declaring library function 'calloc' with type 'void *(unsigned long, unsigned long)' [-Werror,-Wimplicit-function-declaration]
        keyword = calloc(1, keysize);
                  ^
rijndael-128.c:446:12: note: include the header <stdlib.h> or explicitly provide a declaration for 'calloc'
        keyword = calloc(1, _mcrypt_get_key_size());
                  ^
3-way.c:294:12: note: include the header <stdlib.h> or explicitly provide a declaration for 'calloc'
rijndael-128.c:459:8: error: implicitly declaring library function 'malloc' with type 'void *(unsigned long)' [-Werror,-Wimplicit-function-declaration]
3-way.c:305:8: error: implicitly declaring library function 'malloc' with type 'void *(unsigned long)' [-Werror,-Wimplicit-function-declaration]
        key = malloc(_mcrypt_get_size());
              ^
rijndael-128.c:459:8: note: include the header <stdlib.h> or explicitly provide a declaration for 'malloc'
rijndael-128.c:461:3: error: implicit declaration of function 'free' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                free(keyword);
                ^
        key = malloc(_mcrypt_get_size());
              ^
3-way.c:305:8: note: include the header <stdlib.h> or explicitly provide a declaration for 'malloc'
3-way.c:312:2: error: implicit declaration of function 'free' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
        free(keyword);
        ^
rijndael-128.c:468:2: error: implicit declaration of function 'free' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
        free(keyword);
        ^
rijndael-128.c:473:3: error: implicitly declaring library function 'sprintf' with type 'int (char *, const char *, ...)' [-Werror,-Wimplicit-function-declaration]
                sprintf(&((char *) cipher_tmp)[2 * j], "%.2x",
                ^
rijndael-128.c:473:3: note: include the header <stdio.h> or explicitly provide a declaration for 'sprintf'
rijndael-128.c:478:3: error: implicitly declaring library function 'printf' with type 'int (const char *, ...)' [-Werror,-Wimplicit-function-declaration]
                printf("failed compatibility\n");
                ^
rijndael-128.c:478:3: note: include the header <stdio.h> or explicitly provide a declaration for 'printf'
3-way.c:317:3: error: implicitly declaring library function 'sprintf' with type 'int (char *, const char *, ...)' [-Werror,-Wimplicit-function-declaration]
                sprintf(&((char *) cipher_tmp)[2 * j], "%.2x",
                ^
3-way.c:317:3: note: include the header <stdio.h> or explicitly provide a declaration for 'sprintf'
3-way.c:322:3: error: implicitly declaring library function 'printf' with type 'int (const char *, ...)' [-Werror,-Wimplicit-function-declaration]
rijndael-128.c:487:13: warning: passing 'unsigned char [32]' to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        if (strcmp(ciphertext, plaintext) != 0) {
                   ^~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include/string.h:77:25: note: passing argument to parameter '__s1' here
gost.c:403:int      strcmp(const char *__s1, const char *__s2);13
:                            ^ 
warning: passing 'unsigned char [16]' to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
rijndael-128.c:487:25: warning: passing 'unsigned char [32]' to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        if (strcmp(ciphertext, plaintext) != 0) {
                   ^~~~~~~~~~
        if (strcmp(ciphertext, plaintext) != 0) {
                               ^~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include/string.h/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include/string.h::7777::2543::  notenote: : passing argument to parameter '__s1' herepassing argument to parameter '__s2' here

int      strcmp(const char *__s1, const char *__s2);
                                              ^int      strcmp(const char *__s1, const char *__s2);

                            ^
gost.c:403:25: warning: passing 'unsigned char [16]' to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        if (strcmp(ciphertext, plaintext) != 0) {
                               ^~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include/string.h:77:43: note: passing argument to parameter '__s2' here
                printf("failed compatibility\n");
                ^
3-way.cint      strcmp(const char *__s1, const char *__s2);:
322                                              ^:
3: note: include the header <stdio.h> or explicitly provide a declaration for 'printf'
3-way.c:331:13: warning: passing 'unsigned char [16]' to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        if (strcmp(ciphertext, plaintext) != 0) {
                   ^~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include/string.h:77:25: note: passing argument to parameter '__s1' here
int      strcmp(const char *__s1, const char *__s2);
                            ^
3-way.c:331:25: warning: passing 'unsigned char [16]' to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        if (strcmp(ciphertext, plaintext) != 0) {
                               ^~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include/string.h:77:43: note: passing argument to parameter '__s2' here
int      strcmp(const char *__s1, const char *__s2);
                                              ^
2 warnings and 5 errors generated.
2 warnings and 6 errors generated.
2 warnings and 6 errors generated.
cast-128.c:344:12: error: implicitly declaring library function 'calloc' with type 'void *(unsigned long, unsigned long)' [-Werror,-Wimplicit-function-declaration]
        keyword = calloc(1, _mcrypt_get_key_size());
                  ^
cast-128.c:344:12: note: include the header <stdlib.h> or explicitly provide a declaration for 'calloc'
cast-128.c:355:8: error: implicitly declaring library function 'malloc' with type 'void *(unsigned long)' [-Werror,-Wimplicit-function-declaration]
        key = malloc(_mcrypt_get_size());
              ^
cast-128.c:355:8: note: include the header <stdlib.h> or explicitly provide a declaration for 'malloc'
cast-128.c:362:2: error: implicit declaration of function 'free' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
        free(keyword);
        ^
cast-128.c:366:3: error: implicitly declaring library function 'sprintf' with type 'int (char *, const char *, ...)' [-Werror,-Wimplicit-function-declaration]
                sprintf(&((char *) cipher_tmp)[2 * j], "%.2x",
                ^
cast-128.c:366:3: note: include the header <stdio.h> or explicitly provide a declaration for 'sprintf'
cast-128.c:371:3: error: implicitly declaring library function 'printf' with type 'int (const char *, ...)' [-Werror,-Wimplicit-function-declaration]
                printf("failed compatibility\n");
                ^
cast-128.c:371:3: note: include the header <stdio.h> or explicitly provide a declaration for 'printf'
cast-128.c:380:13: warning: passing 'unsigned char [16]' to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        if (strcmp(ciphertext, plaintext) != 0) {
                   ^~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include/string.h:77:25: note: passing argument to parameter '__s1' here
int      strcmp(const char *__s1, const char *__s2);
                            ^
cast-128.c:380:25: warning: passing 'unsigned char [16]' to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        if (strcmp(ciphertext, plaintext) != 0) {
                               ^~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include/string.h:77:43: note: passing argument to parameter '__s2' here
int      strcmp(const char *__s1, const char *__s2);
                                              ^
make[3]: *** [gost.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: *** [3-way.lo] Error 1
make[3]: *** [rijndael-128.lo] Error 1
2 warnings and 5 errors generated.
make[3]: *** [cast-128.lo] Error 1
make[3]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libmcrypt/libmcrypt/work/libmcrypt-2.5.8/modules/algorithms'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libmcrypt/libmcrypt/work/libmcrypt-2.5.8/modules'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libmcrypt/libmcrypt/work/libmcrypt-2.5.8'
make: *** [all] Error 2
make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libmcrypt/libmcrypt/work/libmcrypt-2.5.8'
Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libmcrypt/libmcrypt/work/libmcrypt-2.5.8" && /usr/bin/make -j4 -w all 
Exit code: 2
Error: Failed to build libmcrypt: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libmcrypt/libmcrypt/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets to report a bug.
Error: Processing of port libmcrypt failed
/Users/sudheer.hr/macports/xalan ->  

Change History (6)

comment:1 Changed 3 years ago by sudheerhebbale (Sudheer Hebbale)

Cc: sudheerhebbale added

comment:2 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Description: modified (diff)
Keywords: bigsur catalina added
Port: libmcrypt added
Summary: Failed to build libmcrypt: command execution failedlibmcrypt: error: implicitly declaring library function 'calloc'

comment:3 Changed 3 years ago by josephsacco

libmcrypt builds when using MacPorts-gcc-10:

sudo port -d install libmcrypt configure.compiler=macports-gcc-10

comment:4 Changed 3 years ago by jmroot (Joshua Root)

Owner: set to ryandesign
Status: newassigned

comment:5 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

That's not surprising, but please don't try to build ports with gcc.

comment:6 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: assignedclosed

In 721e09c2796779ebf5693f5374e607f23dab45a2/macports-ports (master):

libmcrypt: Fix implicit declaration of function

Closes: #61522

Also modernize checksums and add my GitHub handle to maintainers.

Note: See TracTickets for help on using tickets.