Opened 9 years ago

Last modified 7 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)

main.log (110.3 KB) - added by RobK88 9 years ago.
main-clang-16.log (495.9 KB) - added by RobK88 8 months ago.
main.log using clang-16
main-clang-9-latest.log (484.7 KB) - added by RobK88 8 months ago.
main.log using clang-9.0

Download all attachments as: .zip

Change History (9)

Changed 9 years ago by RobK88

Attachment: main.log added

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 2 years ago by RobK88

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.

bash-3.2$ sudo port clean dvdisaster
--->  Cleaning dvdisaster
bash-3.2$ sudo port install  dvdisaster configure.compiler=macports-clang-9.0
--->  Computing dependencies for dvdisaster
--->  Fetching distfiles for dvdisaster
--->  Verifying checksums for dvdisaster
--->  Extracting dvdisaster
--->  Applying patches to dvdisaster
--->  Configuring dvdisaster
--->  Building dvdisaster                                
--->  Staging dvdisaster into destroot                   
--->  Installing dvdisaster @0.72.3_0                    
--->  Activating dvdisaster @0.72.3_0
--->  Cleaning dvdisaster
--->  Scanning binaries for linking errors
--->  No broken files found.                             
--->  No broken ports found.
bash-3.2$ 
bash-3.2$ dvdisaster --version

dvdisaster version 0.72 (pl3) build 5
Version 1, edited 2 years ago by RobK88 (previous) (next) (diff)

comment:3 Changed 8 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

Changed 8 months ago by RobK88

Attachment: main-clang-16.log added

main.log using clang-16

comment:4 Changed 8 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
Last edited 8 months ago by RobK88 (previous) (diff)

Changed 8 months ago by RobK88

Attachment: main-clang-9-latest.log added

main.log using clang-9.0

comment:5 in reply to:  4 Changed 7 months ago by ryandesign (Ryan Carsten Schmidt)

Replying to 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.

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 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:

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 7 months ago by RobK88

Ryan -- Many thanks for the feedback and the link to https://trac.macports.org/wiki/WimplicitFunctionDeclaration. Now I understand why ports with WimplictFunctionDeclaration issues will not build in Macports using Xcode 12 or later. So it looks like dvdisaster will not build on Silicon Macs either.

Note: See TracTickets for help on using tickets.