[HarfBuzz] strang dual-architecture problem under OS X
Werner LEMBERG
wl at gnu.org
Mon Feb 10 14:19:26 CET 2014
[libtool 2.4.2]
I'm compiling harfbuzz under OS X 10.7.5 (i.e., Darwin 11.4.2), XCode
4.6.3 (i.e., i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1), with the
following configuration flags; see attached build script for more.
--enable-static
LDFLAGS=CFLAGS=CXXFLAGS="-arch i386 -arch x86_64"
Doing so I encounter problems with the created static library. The
log file shows
libtool: link: \
(cd /Users/wl/harfbuzz-0.9.26/src/.libs/libharfbuzz.lax/libhb-ucdn.a/unfat-91266/libhb-ucdn.a-i386 \
&& ar x "libhb-ucdn.a")
libtool: link: \
(cd /Users/wl/harfbuzz-0.9.26/src/.libs/libharfbuzz.lax/libhb-ucdn.a/unfat-91266/libhb-ucdn.a-x86_64 \
&& ar x "libhb-ucdn.a")
find: warning: \
Unix filenames usually don't contain slashes (though pathnames do). \
That means that '-name `unfat-91266/libhb-ucdn.a-i386/ucdn.o'' \
will probably evaluate to false all the time on this system. ...
lipo: no input files specified
lipo: Usage: ...
find: warning: \
Unix filenames usually don't contain slashes (though pathnames do). \
That means that '-name `unfat-91266/libhb-ucdn.a-x86_64/ucdn.o'' \
will probably evaluate to false all the time on this system. ...
lipo: no input files specified
lipo: Usage: ...
and `libhb-ucdn.a' is not added to `harfbuzz.a'.
It seems to me that the very problem is this line in HarfBuzz's
src/Makefile.am (macros expanded):
libharfbuzz_la_LIBADD = hb-ucdn/libhb-ucdn.la
In my `ttfautohint' package, I use a very similar construction, however,
my local library is not located within a subdirectory but in the same
location as the main library, and a dual-architecture build works just
fine.
My solution to the problem was to build harfbuzz two times, with
different architectures, then creating universal libraries with
`lipo'. However, this is not really satisfying. My question: Is this
a known problem? I think it's not a libtool issue but a bug somewhere
else...
Werner
-------------- next part --------------
# The library versions.
HARFBUZZ_VERSION="0.9.26"
HARFBUZZ="harfbuzz-$HARFBUZZ_VERSION"
# download HarfBuzx
# curl -O "http://www.freedesktop.org/software/harfbuzz/release/$HARFBUZZ.tar.bz2"
TA_ARCH="-arch i386 -arch x86_64"
# extract archive -- you need a recent tar version to make this work
tar -xjvf "$HARFBUZZ.tar.bz2"
cd "$HARFBUZZ"
./configure \
--enable-static \
--disable-dependency-tracking \
--disable-gtk-doc-html \
--with-glib=no \
CFLAGS="$TA_ARCH" \
CXXFLAGS="$TA_ARCH" \
LDFLAGS="$TA_ARCH"
make V=1
More information about the HarfBuzz
mailing list