New Ticket     Tickets     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Ticket #35528 (closed defect: fixed)

Opened 10 months ago

Last modified 9 months ago

transfig build fails without error

Reported by: jurgen.defurne@… Owned by: ryandesign@…
Priority: Normal Milestone:
Component: ports Version: 2.1.2
Keywords: clang Cc: seongmin.hwang+macport@…, gnn@…, Zittersteyn@…, rz.rios@…
Port: transfig

Description (last modified by ryandesign@…) (diff)

After upgrading transfig, I found out that fig2dev did not work anymore. After doing some checking, I found out that the build of transfig fails, but that the build script does not detect the error exit status.

The build fails at the following point:

 genibmgl.c:575:29: error: non-void function 'set_width' should return a value [-Wreturn-type]
    if (w == current_width) return;

I have attached the debug log.

Attachments

transfig.log (160.3 KB) - added by jurgen.defurne@… 10 months ago.

Change History

Changed 10 months ago by jurgen.defurne@…

comment:1 Changed 10 months ago by ryandesign@…

  • Priority changed from High to Normal
  • Keywords clang added
  • Description modified (diff)

comment:2 Changed 10 months ago by seongmin.hwang+macport@…

  • Cc seongmin.hwang+macport@… added

Cc Me!

comment:3 follow-up: ↓ 7 Changed 10 months ago by seongmin.hwang+macports@…

Reporting a workaround (and possible solution) to this issue. I have tried the following steps:

  1. Stop (Ctrl-C) the port during building process.
  2. Change "return ;" to "return 0" in /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_print_transfig/transfig/work/transfig.3.2.5d/fig2dev/dev/genibmgl.c (Line 575)
  3. Resume the port. (sudo port install transfig)

These steps seemed to solve the problem and resulted in proper fig2dev and other associated binaries.

Regards,

Seong-min

comment:4 Changed 10 months ago by seongmin.hwang+macports@…

"return 0" above should be "return 0;". Sorry for the confusion.

comment:5 Changed 10 months ago by jurgen.defurne@…

As a workaround, it is good enough, thanks!

comment:6 Changed 9 months ago by ryandesign@…

  • Cc gnn@… added

Duplicate #35628 suggests a different fix.

comment:7 in reply to: ↑ 3 Changed 9 months ago by Zittersteyn@…

My system had the same issue, but killing port during building did not work. My workaround:

sudo port <enters interactive mode>

fetch transfig

<transfig is downloaded, the file /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_print_transfig/transfig/work/transfig.3.2.5d/fig2dev/dev/genibmgl.c now exists, edit as Seong-min suggested>

checksum transfig

extract transfig

patch transfig

configure transfig

build transfig

destroot transfig

install transfig

activate transfig

I have no idea if the entire chain of commands is needed, documentation of the commands is rather... sparse, but this worked for me.

Thanks for the fix, this was driving me INSANE :-).

Cheers, Dirk

comment:8 Changed 9 months ago by Zittersteyn@…

  • Cc Zittersteyn@… added

Cc Me!

comment:9 Changed 9 months ago by ryandesign@…

  • Owner changed from macports-tickets@… to ryandesign@…
  • Status changed from new to assigned
  • Cc rz.rios@… added

Has duplicate #35720.

comment:10 follow-up: ↓ 11 Changed 9 months ago by ryandesign@…

The problem occurs because of a combination of factors. First, transfig does not build with clang. The portfile was already modified in r89950 to use llvm-gcc-4.2 instead of clang, but additionally, not all parts of the transfig build were UsingTheRightCompiler, so they still used the system default compiler. With Xcode 4.4 (or even 4.3 already?) the system default compiler changed from llvm-gcc-4.2 to clang. Finally, the transfig build does not detect when parts fail to build, and it proceeds anyway, ending up with a "successful" install that's missing parts that should be there.

comment:11 in reply to: ↑ 10 Changed 9 months ago by ryandesign@…

  • Status changed from assigned to closed
  • Resolution set to fixed

Replying to ryandesign@…:

The problem occurs because of a combination of factors. First, transfig does not build with clang. The portfile was already modified in r89950 to use llvm-gcc-4.2 instead of clang, but additionally, not all parts of the transfig build were UsingTheRightCompiler, so they still used the system default compiler. With Xcode 4.4 (or even 4.3 already?) the system default compiler changed from llvm-gcc-4.2 to clang.

Fixed in r96726. Now it's always UsingTheRightCompiler and -arch flags, and I added a universal variant and increased the revision to force a rebuild.

Finally, the transfig build does not detect when parts fail to build, and it proceeds anyway, ending up with a "successful" install that's missing parts that should be there.

Added detection for this problem to the portfile in r96725 so that if in the future new compilers cause other build problems, we'll be notified by the port failing to build.

comment:12 Changed 9 months ago by gnn@…

Thanks! This worked for me.

comment:13 Changed 9 months ago by ryandesign@…

Has duplicate #35839.

Note: See TracTickets for help on using tickets.