Opened 4 years ago
Last modified 4 years ago
#62534 assigned defect
giflib5 @5.2.1: clang: error: no such file or directory: 'dgif_lib.o'
Reported by: | ryandesign (Ryan Carsten Schmidt) | Owned by: | Schamschula (Marius Schamschula) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.6.4 |
Keywords: | Cc: | ||
Port: | giflib5 |
Description
giflib5 is not UsingTheRightCompiler or -arch
flags nor does it have a universal variant:
cc -std=gnu99 -fPIC -Wall -Wno-format-truncation -O2 -c -o dgif_lib.o dgif_lib.c
It also doesn't build:
clang: error: no such file or directory: 'dgif_lib.o' make: *** [libutil.dylib] Error 1 make: *** Waiting for unfinished jobs....
Maybe a parallel build issue?
Change History (4)
comment:1 Changed 4 years ago by Schamschula (Marius Schamschula)
comment:2 Changed 4 years ago by Schamschula (Marius Schamschula)
However, adding the makefile
PortGroup should fix the former problem, perhaps the second as well.
comment:3 Changed 4 years ago by Schamschula (Marius Schamschula)
comment:4 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)
Adding the makefile portgroup has made it use the right compiler, yes, but it's still not using -arch flags for all parts of the build, and the build still fails on some builders possibly because of parallel build issues:
Just adding the makefile portgroup is often not enough. Because each project's makefile is different, you have to compare the makefile to the way the portgroup works and maybe change some of the options the portgroup exposes or maybe even patch the makefile before it will behave correctly.
Fortunately the build fails when using the newly-added universal variant, so fixing it doesn't require increasing the revision.
You could disable parallel building or try to figure out in what way the makefile's dependency declarations are wrong and try to fix them.
Unfortunately, there is only a
Makefile
that has mot be manually patched.Dealing with the compiler shouldn't be a problem.
Adding an universal variant, is another matter.