Ticket #35528 (closed defect: fixed)
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
Change History
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:
- Stop (Ctrl-C) the port during building process.
- 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)
- 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: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: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.

