[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