Opened 8 weeks ago

Closed 6 weeks ago

#70874 closed defect (fixed)

icmake @9.03.01: Does not install /opt/local/libexec/icmake/icm-exec

Reported by: barracuda156 Owned by: larryv (Lawrence Velázquez)
Priority: Normal Milestone:
Component: ports Version: 2.10.1
Keywords: haspatch Cc:
Port: icmake

Description

--->  Extracting yodl_3.05.01.orig.tar.gz
Executing:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_textproc_yodl/yodl/work" && /usr/bin/gzip -dc '/opt/local/var/macports/distfiles/yodl/yodl_3.05.01.orig.tar.gz' | /usr/bin/gnutar --no-same-owner -xf - 
--->  Applying patches to yodl
--->  Applying avoid-c++11.patch
Executing:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_textproc_yodl/yodl/work/yodl-3.05.01" && /usr/bin/patch -t -N -p0 < '/opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/textproc/yodl/files/avoid-c++11.patch'
patching file src/verbinsert/verbinsert.cc
patching file icmake/program
--->  Applying use-macports-compilers.patch
Executing:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_textproc_yodl/yodl/work/yodl-3.05.01" && /usr/bin/patch -t -N -p0 < '/opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/textproc/yodl/files/use-macports-compilers.patch'
patching file INSTALL.im
patching file build
patching file icmake/program
--->  Applying use-macports-locations.patch
Executing:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_textproc_yodl/yodl/work/yodl-3.05.01" && /usr/bin/patch -t -N -p0 < '/opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/textproc/yodl/files/use-macports-locations.patch'
patching file INSTALL.im
patching file build
--->  Patching INSTALL.im: s|__MP_CC__|/usr/bin/gcc-4.2|
--->  Patching INSTALL.im: s|__MP_CXX__|/usr/bin/g++-4.2|
--->  Patching INSTALL.im: s|__MP_PREFIX__|/opt/local|
--->  Patching build: s|__MP_PREFIX__|/opt/local|
--->  Configuring yodl
--->  Building yodl
[icmake/md, line 15] Warning: `sizeof' is deprecated. Use `listlen'

[icmake/stdcpp, line 7] Warning: `sizeof' is deprecated. Use `listlen'

[icmake/stdcpp, line 31] Warning: `sizeof' is deprecated. Use `listlen'

[icmake/stdcpp, line 55] Warning: `sizeof' is deprecated. Use `listlen'

[icmake/stdcpp, line 78] Warning: `sizeof' is deprecated. Use `listlen'

[icmake/compilerss, line 8] Warning: `sizeof' is deprecated. Use `listlen'

[icmake/builtins, line 34] Warning: `sizeof' is deprecated. Use `listlen'

[icmake/builtins, line 66] Warning: `sizeof' is deprecated. Use `listlen'

[icmake/buildmacros, line 27] Warning: `sizeof' is deprecated. Use `listlen'

[icmake/buildmacros, line 52] Warning: `sizeof' is deprecated. Use `listlen'

[icmake/manualmacrolist, line 16] Warning: `sizeof' is deprecated. Use `listlen'

[icmake/install, line 8] Warning: `sizeof' is deprecated. Use `listlen'

[icmake/install, line 22] Warning: `sizeof' is deprecated. Use `listlen'

Fatal: Can't exec /opt/local/libexec/icmake/icm-exec: no such file
Command failed: env CFLAGS='-Os -arch ppc' CXXFLAGS='-Os -arch ppc' LDFLAGS='-L/opt/local/lib -Wl,-headerpad_max_install_names -arch ppc' LC_ALL=C ./build programs
Exit code: 1
Error: Failed to build yodl: command execution failed

Attachments (1)

main.log (301.9 KB) - added by barracuda156 7 weeks ago.
icmake log

Download all attachments as: .zip

Change History (11)

comment:1 Changed 7 weeks ago by ryandesign (Ryan Carsten Schmidt)

According to https://ports.macports.org/search/?installed_file=%2Fopt%2Flocal%2Flibexec%2Ficmake%2Ficm-exec&q= the file /opt/local/libexec/icmake/icm-exec is provided by the icmake port upon which the yodl port does depend. Can you confirm whether the icmake port is installed on your system and if so whether it contains this file?

comment:2 in reply to:  1 Changed 7 weeks ago by barracuda156

Replying to ryandesign:

According to https://ports.macports.org/search/?installed_file=%2Fopt%2Flocal%2Flibexec%2Ficmake%2Ficm-exec&q= the file /opt/local/libexec/icmake/icm-exec is provided by the icmake port upon which the yodl port does depend. Can you confirm whether the icmake port is installed on your system and if so whether it contains this file?

Looks like it does not have it for some reason:

36-25% port installed icmake
porThe following ports are currently installed:
  icmake @9.03.01_0 (active)
36-25% port contents icmake
Port icmake @9.03.01_0 contains:
  /opt/local/bin/icmake
  /opt/local/bin/icmbuild
  /opt/local/bin/icmstart
  /opt/local/etc/icmake/icmstart.rc
  /opt/local/libexec/icmake/icm-comp
  /opt/local/libexec/icmake/icm-dep
  /opt/local/libexec/icmake/icm-pp
  /opt/local/libexec/icmake/icmbuild
  /opt/local/libexec/icmake/icmun
  /opt/local/share/doc/icmake/changelog.gz
  /opt/local/share/doc/icmake/examples/7.00/backtick.im
  /opt/local/share/doc/icmake/examples/7.00/define.im
  /opt/local/share/doc/icmake/examples/7.00/getenv.im
  /opt/local/share/doc/icmake/examples/7.00/ifdef.im
  /opt/local/share/doc/icmake/examples/7.00/index.im
  /opt/local/share/doc/icmake/examples/7.00/strfind.im
  /opt/local/share/doc/icmake/examples/7.00/strlwr.im
  /opt/local/share/doc/icmake/examples/7.00/substr.im
  /opt/local/share/doc/icmake/examples/8.00/strformat.im
  /opt/local/share/doc/icmake/examples/am
  /opt/local/share/doc/icmake/examples/bup
  /opt/local/share/doc/icmake/examples/defines
  /opt/local/share/doc/icmake/examples/ds
  /opt/local/share/doc/icmake/examples/ftpxfer
  /opt/local/share/doc/icmake/examples/idir
  /opt/local/share/doc/icmake/examples/initialization
  /opt/local/share/doc/icmake/examples/keep
  /opt/local/share/doc/icmake/examples/killprog
  /opt/local/share/doc/icmake/examples/nesteddirectives
  /opt/local/share/doc/icmake/examples/r
  /opt/local/share/doc/icmake/examples/tolower
  /opt/local/share/doc/icmake/icmake.ps.gz
  /opt/local/share/icmake/CLASSES
  /opt/local/share/icmake/frame
  /opt/local/share/icmake/icmconf
  /opt/local/share/icmake/main.cc
  /opt/local/share/icmake/main.ih
  /opt/local/share/icmake/parser/grammar
  /opt/local/share/icmake/scanner/lexer
  /opt/local/share/icmake/scanner/scanner.ih
  /opt/local/share/icmake/usage.cc
  /opt/local/share/icmake/version.cc
  /opt/local/share/man/man1/icmake.1.gz
  /opt/local/share/man/man1/icmbuild.1.gz
  /opt/local/share/man/man1/icmstart.1.gz
  /opt/local/share/man/man7/icmconf.7.gz
  /opt/local/share/man/man7/icmstart.rc.7.gz

comment:3 Changed 7 weeks ago by barracuda156

I also tried to rebuild icmake just to make sure, and no such file is built. This is what gets into /opt/local/libexec/icmake:

icm-comp
icm-dep
icm-pp
icmbuild
icmun

Of course, I used standard portfile of it, not an overlay:

36-25% port file icmake
/opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/devel/icmake/Portfile

comment:4 Changed 7 weeks ago by ryandesign (Ryan Carsten Schmidt)

Keywords: powerpc added
Port: icmake added; yodl removed
Summary: yodl fails to build: Fatal: Can't exec /opt/local/libexec/icmake/icm-exec: no such fileicmake @9.03.01: Does not install /opt/local/libexec/icmake/icm-exec

Could you run sudo port destroot icmake and then attach the file port logfile icmake?

Changed 7 weeks ago by barracuda156

Attachment: main.log added

icmake log

comment:5 Changed 7 weeks ago by ryandesign (Ryan Carsten Schmidt)

I see the log contains two attempts to build icmake. In the first attempt from June, this error occurred several times during the build phase:

error: ‘for’ loop initial declaration used outside C99 mode

presumably in the source code files that make up icmake and icmbuild but the build system has a defect where it does not exit when an error occurs. It proceeded on to the destroot phase which failed with these errors:

cp: tmp//opt/local/bin/icmake: No such file or directory
cp: tmp//opt/local/bin/icmbuild: No such file or directory

You already fixed the C99 mode problem but the build system defect remains.

In the second attempt from September, this error occurred several times during the build phase:

error: ‘Variable’ has no member named ‘data’

presumably in the source code files that make up icm-exec. The destroot phase did not fail because the icm_install file only tries to install icm-exec if it exists.

Maybe there is a way to fix the code so that gcc-4.2 can compile it, or maybe the old compiler needs to be blacklisted.

First, we should try updating the port; maybe these issues are already fixed. If not, they should be reported to the developer.

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

Replying to ryandesign:

the build system has a defect where it does not exit when an error occurs

This may already be fixed in 10.00.00 which uses "|| exit 1" to exit if an error occurs which was missing in 9.03.01.

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

Replying to ryandesign:

error: ‘Variable’ has no member named ‘data’

Preceding this, the log contains:

../../rss/types.ih:243: warning: declaration does not declare anything
../../rss/types.ih:249: warning: declaration does not declare anything
../../rss/types.ih:259: warning: declaration does not declare anything

and these line numbers correspond to the ends of three anonymous unions, the third of which is one that defines the data member in the Variable struct.

According to https://mingw-users.narkive.com/kWqZRpk4/declaration-does-not-declare-anything and https://stackoverflow.com/questions/3228104/anonymous-union-within-struct-not-in-c99 such anonymous unions are an extension, not part of the C standard.

These warnings and this error were not seen in your June build attempt because gcc 4.2 defaults to gnu89 mode (C89 with GNU extensions, presumably including support for anonymous unions). Then, after you set the compiler to c99 mode (C99 without GNU extensions), this problem appeared. The fix would be to use gnu99 mode (C99 with GNU extensions).

comment:8 Changed 7 weeks ago by ryandesign (Ryan Carsten Schmidt)

Keywords: haspatch added; powerpc removed

comment:9 Changed 6 weeks ago by ryandesign (Ryan Carsten Schmidt)

In 4481be2265cdb2a368eebaf51d595da929ee3242/macports-ports (master):

icmake: Exit if an error occurs

See: #70874

comment:10 Changed 6 weeks ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: assignedclosed

In 7c92d2f117b3634ec9525db0d1a5cf8eac066021/macports-ports (master):

icmake: Use gnu99 mode

gnu99 mode is required to build icm-exec

Closes: #70874

Note: See TracTickets for help on using tickets.