Opened 14 years ago

Closed 13 years ago

Last modified 13 years ago

#15451 closed defect (fixed)

cairo +universal doesn't build since 1.6.4

Reported by: ryandesign (Ryan Schmidt) Owned by: ryandesign (Ryan Schmidt)
Priority: Normal Milestone:
Component: ports Version: 1.6.0
Keywords: Cc: hvdwolf@…


cairo +universal used to work in 1.4.14 but with 1.6.4 it doesn't build.

Attachments (1)

Portfile-rrdtool.diff (966 bytes) - added by hvdwolf@… 13 years ago.
patch for the Cairo Portfile

Download all attachments as: .zip

Change History (11)

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

comment:2 Changed 13 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?).


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 13 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

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

Has presumed duplicate #16057.

Changed 13 years ago by hvdwolf@…

Attachment: Portfile-rrdtool.diff added

patch for the Cairo Portfile

comment:5 Changed 13 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 13 years ago by ryandesign (Ryan 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 13 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 13 years ago by ryandesign (Ryan Schmidt)

Resolution: fixed
Status: newclosed

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

Cc: hvdwolf@… added

comment:10 Changed 13 years ago by (none)

Milestone: Port Bugs

Milestone Port Bugs deleted

Note: See TracTickets for help on using tickets.