Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#35528 closed defect (fixed)

transfig build fails without error

Reported by: jurgen.defurne@… Owned by: ryandesign (Ryan Carsten Schmidt)
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 (Ryan Carsten Schmidt))

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 (1)

transfig.log (160.3 KB) - added by jurgen.defurne@… 12 years ago.

Download all attachments as: .zip

Change History (14)

Changed 12 years ago by jurgen.defurne@…

Attachment: transfig.log added

comment:1 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Description: modified (diff)
Keywords: clang added
Priority: HighNormal

comment:2 Changed 12 years ago by seongmin.hwang+macport@…

Cc: seongmin.hwang+macport@… added

Cc Me!

comment:3 Changed 12 years 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 12 years ago by seongmin.hwang+macports@…

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

comment:5 Changed 12 years ago by jurgen.defurne@…

As a workaround, it is good enough, thanks!

comment:6 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: gnn@… added

Duplicate #35628 suggests a different fix.

comment:7 in reply to:  3 Changed 12 years 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 12 years ago by Zittersteyn@…

Cc: Zittersteyn@… added

Cc Me!

comment:9 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: rz.rios@… added
Owner: changed from macports-tickets@… to ryandesign@…
Status: newassigned

Has duplicate #35720.

comment:10 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

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 12 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: assignedclosed

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 12 years ago by gnn@…

Thanks! This worked for me.

comment:13 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Has duplicate #35839.

Note: See TracTickets for help on using tickets.