Opened 9 years ago
Last modified 5 weeks ago
#48792 new defect
dvdisaster: build failure OS X 10.7 Intel Mac
Reported by: | RobK88 | Owned by: | mklein-de (Michael Klein) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.3.3 |
Keywords: | Cc: | ||
Port: | dvdisaster |
Description
dvdisaster fails to build on Mac Pro running 10.7 Lion. See attached log.
Attachments (3)
Change History (9)
Changed 9 years ago by RobK88
comment:1 Changed 9 years ago by mf2k (Frank Schima)
Cc: | michael.klein@… removed |
---|---|
Owner: | changed from macports-tickets@… to michael.klein@… |
comment:2 Changed 3 years ago by RobK88
comment:3 Changed 12 months ago by RobK88
As noted above, dvdisaster
will build just fine on Lion using clang-9.0
. But it will NOT build using clang-15
or clang-16
. See attached main-clang-16.log
.
In particular, one sees:
Compiling: codec.c 2 warnings generated. make: *** read jobs pipe: Resource temporarily unavailable. Stop. make: *** Waiting for unfinished jobs.... Compiling: decimate.c codec.c:184:7: error: call to undeclared library function 'memcpy' with type 'void *(void *, const void *, unsigned long)'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] memcpy(tile_db[idx], new_tile, sizeof(tile)); ^ codec.c:184:7: note: include the header <string.h> or explicitly provide a declaration for 'memcpy' codec.c:328:47: error: call to undeclared library function 'strerror' with type 'char *(int)'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] Stop("Write error in bz2 library: %s\n",strerror(errno)); ^ codec.c:328:47: note: include the header <string.h> or explicitly provide a declaration for 'strerror' 2 warnings generated. codec.c:401:26: error: call to undeclared library function 'strlen' with type 'unsigned long (const char *)'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] unsigned int len = strlen(pi->name); ^ codec.c:401:26: note: include the header <string.h> or explicitly provide a declaration for 'strlen' codec.c:518:7: error: call to undeclared library function 'strncmp' with type 'int (const char *, const char *, unsigned long)'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] if(strncmp(header, ".pngpack", 8)) ^ codec.c:518:7: note: include the header <string.h> or explicitly provide a declaration for 'strncmp' codec.c:698:8: error: call to undeclared library function 'memcmp' with type 'int (const void *, const void *, unsigned long)'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] if(!memcmp(pi->checksum, checksum, 16)) ^ codec.c:698:8: note: include the header <string.h> or explicitly provide a declaration for 'memcmp' 5 errors generated. gmake[1]: *** [Makefile:87: codec.o] Error 1 gmake[1]: *** Waiting for unfinished jobs.... Compiling: md5.c decimate.c:34:15: error: call to undeclared library function 'strlen' with type 'unsigned long (const char *)'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] char tname[strlen(thumb_dir)+strlen(name)+2]; ^ decimate.c:34:15: note: include the header <string.h> or explicitly provide a declaration for 'strlen' decimate.c:50:4: error: call to undeclared library function 'memcpy' with type 'void *(void *, const void *, unsigned long)'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] memcpy(thumb, pi, sizeof(Image)); ^ decimate.c:50:4: note: include the header <string.h> or explicitly provide a declaration for 'memcpy' 2 errors generated. gmake[1]: *** [Makefile:87: decimate.o] Error 1 md5.c:162:25: warning: 'memset' call operates on objects of type 'struct MD5Context' while the size is based on a different type 'struct MD5Context *' [-Wsizeof-pointer-memaccess] memset(ctx, 0, sizeof (ctx)); /* In case it's sensitive */ ~~~ ^~~ md5.c:162:25: note: did you mean to dereference the argument to 'sizeof' (and multiply it by the number of elements)? memset(ctx, 0, sizeof (ctx)); /* In case it's sensitive */ ^~~ 1 warning generated. Unpacking images (may take a while) ... /opt/local/bin/bash: line 1: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_sysutils_dvdisaster/dvdisaster/work/dvdisaster-0.72.3/tools/pngpack: No such file or directory common de en ru - done 2 warnings generated. make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_sysutils_dvdisaster/dvdisaster/work/dvdisaster-0.72.3' Command failed: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_sysutils_dvdisaster/dvdisaster/work/dvdisaster-0.72.3" && /usr/bin/make -j4 -w all CC=/opt/local/bin/clang-mp-16 Exit code: 2 Error: Failed to build dvdisaster: command execution failed Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_sysutils_dvdisaster/dvdisaster/main.log for details. Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug. Error: Processing of port dvdisaster failed
comment:4 follow-up: 5 Changed 12 months ago by RobK88
Hmm. Sometimes but not always I can build dvdisaster
using clang-9.0
. (And yes I always run sudo port clean dvdisaster
beforehand).
To see a failed build using clang-9.0
, see the attached main-clang-9-latest.log
If you want to install dvdisaster
, you may need to run the following commands multiple times until it successfully builds and installs:
bash-3.2$ sudo port clean dvdisaster ---> Cleaning dvdisaster bash-3.2$ sudo port install dvdisaster configure.compiler=macports-clang-9.0
comment:5 Changed 12 months ago by ryandesign (Ryan Carsten Schmidt)
Replying to RobK88:
As noted above,
dvdisaster
will build just fine on Lion usingclang-9.0
. But it will NOT build usingclang-15
orclang-16
. See attachedmain-clang-16.log
.
It also won't build with Xcode 12 clang or later. It needs WimplicitFunctionDeclaration fixes.
Replying to RobK88:
Hmm. Sometimes but not always I can build
dvdisaster
usingclang-9.0
. (And yes I always runsudo port clean dvdisaster
beforehand).To see a failed build using
clang-9.0
, see the attachedmain-clang-9-latest.log
If you want to install
dvdisaster
, you may need to run the following commands multiple times until it successfully builds and installs:
Sounds like it could be a parallel build issue, in which case the port could indicate use_parallel_build no
, and until then, you could add build.jobs=1
on the command line.
comment:6 Changed 12 months ago by RobK88
Ryan -- Many thanks for the feedback and the link to WimplicitFunctionDeclaration. Now I understand why ports with WimplicitFunctionDeclaration issues will not build in Macports using Xcode 12 or later. So it looks like dvdisaster
will not build on Silicon Macs either.
I know this ticket is over 6 years old.
But I was finally able to build dvdisaster on Lion using clang-9.0. It looks like the default compiler in Lion is just too old to compile the source code for dvdisaster. I am sure other more modern compilers will also work. But I did not test them.