#15451 closed defect (fixed)
cairo +universal doesn't build since 1.6.4
Reported by: | ryandesign (Ryan Carsten Schmidt) | Owned by: | ryandesign (Ryan Carsten Schmidt) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 1.6.0 |
Keywords: | Cc: | hvdwolf@… | |
Port: |
Description
cairo +universal used to work in 1.4.14 but with 1.6.4 it doesn't build.
Attachments (1)
Change History (11)
comment:1 Changed 16 years ago by ryandesign (Ryan Carsten Schmidt)
comment:2 Changed 16 years ago by hvdwolf@…
Hi Ryan,
When I manually build Cairo, I set CFLAGS, CXXFLAGS, LDFLAGS and PKG_CONFIG_PATH, the way you do (more or less) in the Portfile. I also need to set the .configure argument CC="gcc -arch ${arch}". Then it works manually. However, when I patch the Portfile of cairo (see below), it still doesn't work (or is that my clumsy patch?).
Harry
configure {
foreach arch ${my_universal_archs} {
set my_arch_flag "-arch ${arch}" set my_cflags "${configure.cflags} -isysroot ${sysroot} ${my_arch_flag}" set my_ldflags "${configure.ldflags} ${my_arch_flag}" set extra_configure.args "CC=\"gcc -arch ${arch}\"" system "cd ${workpath}/${arch} && CFLAGS=\"${my_cflags}\" CXXFLAGS=\"${my_cflags}\" LDFLAGS=\"${my_ldflags}\" ${configure.cmd} ${configure.pre_args} ${configure.args} ${extra_configure.args}"
}
comment:3 Changed 16 years ago by hvdwolf@…
Next to that it's better to use env when applying FLAG settings on the command line like
system "cd ${workpath}/${arch} && env CFLAGS=\"${my_cflags}\" CXXFLAGS=\"${my_cflags}\" LDFLAGS=\"${my_ldflags}\" ${configure.cmd} ${configure.pre_args} ${configure.args} ${extra_configure.args}"
It still doesn't work though.
However, I checked the config log and the compilation steps mention: <snip> work/i386/INSTALL: PKG_CONFIG_PATH=/opt/cairo/lib/pkgconfig work/i386/INSTALL: export PKG_CONFIG_PATH LD_LIBRARY_PATH </snip> <snip> work/ppc/INSTALL: PKG_CONFIG_PATH=/opt/cairo/lib/pkgconfig work/ppc/INSTALL: export PKG_CONFIG_PATH LD_LIBRARY_PATH </snip>
Somehow the pkgconfig stuff doesn't work correctly. Did you check (and find) this too? This might very well be the problem for not finding FcFini
Changed 16 years ago by hvdwolf@…
Attachment: | Portfile-rrdtool.diff added |
---|
patch for the Cairo Portfile
comment:5 Changed 16 years ago by hvdwolf@…
I've attached a patch for the Portfile that should enable universal compilation. It works on my Intel system
comment:6 Changed 16 years ago by ryandesign (Ryan Carsten Schmidt)
Harry, your patch does not change the error on my system (Mac OS X 10.4.11 Intel). Still can't find FcFini.
comment:7 Changed 16 years ago by hvdwolf@…
I'm affraid you are right. I think that I somewhere aborted the run of the dirty hack. I didn't think further of it but I suppose the softlink still existed making my "new" patch also function.
After checking (and checking again) I "discovered" the softlink, removed it and now my patched cairo doesn't build as universal anymore either.
comment:8 Changed 16 years ago by ryandesign (Ryan Carsten Schmidt)
Resolution: | → fixed |
---|---|
Status: | new → closed |
The cairo developers say there is a bug in the configure script: The absence of FcFini was never supposed to be a fatal error. This will be fixed in cairo 1.6.6 and 1.7.2. I've applied a patch to our cairo portfile in r39033 and now we can build universal. There will be further changes to the portfile to simplify the universal variant, but there are other tickets for that so I'll close this one.
comment:9 Changed 16 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | hvdwolf@… added |
---|
I asked the cairo mailing list about this.