New Ticket     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Ticket #15451 (closed defect: fixed)

Opened 4 years ago

Last modified 3 years ago

cairo +universal doesn't build since 1.6.4

Reported by: ryandesign@… Owned by: ryandesign@…
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

Portfile-rrdtool.diff Download (0.9 KB) - added by hvdwolf@… 4 years ago.
patch for the Cairo Portfile

Change History

Changed 4 years ago by ryandesign@…

Changed 4 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}"

}

Changed 4 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 4 years ago by ryandesign@…

Has presumed duplicate #16057.

Changed 4 years ago by hvdwolf@…

patch for the Cairo Portfile

Changed 4 years ago by hvdwolf@…

I've attached a patch for the Portfile that should enable universal compilation. It works on my Intel system

Changed 4 years ago by ryandesign@…

Harry, your patch does not change the error on my system (Mac OS X 10.4.11 Intel). Still can't find FcFini.

Changed 4 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.

Changed 4 years ago by ryandesign@…

  • status changed from new to closed
  • resolution set to fixed

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.

Changed 4 years ago by ryandesign@…

  • cc hvdwolf@… added

Changed 3 years ago by anonymous

  • milestone Port Bugs deleted

Milestone Port Bugs deleted

Note: See TracTickets for help on using tickets.