Opened 9 years ago
Last modified 3 months 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:3 Changed 14 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 14 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 14 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 14 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 found the fix to this bug. The default compiler in Lion is just too old to compile the source code for dvdisaster. But dvdisaster compiles just fine on Lion using clang-9.0. I am sure other more modern compilers will also work. But I did not test them.