Ralf S. Engelschall wrote:
On Wed, Jan 18, 2006, Doug Summers wrote:


Doesn't matter what compiler I use - it always dies here:

+ /syscfg/opkg/bin/make --no-print-directory
/syscfg/opkg/bin/cc -c -O2 -I. ./dftables.c
/bin/sh ./libtool --mode=link /syscfg/opkg/bin/cc -O2  -I. -I. -o
dftables dftables.o
mkdir .libs
/syscfg/opkg/bin/cc "-O2" "-I." "-I." -o dftables dftables.o
./dftables pcre_chartables.c
libtool: compile: libobj name `pcre_chartables.lo' may not contain shell
special characters.
make: *** [pcre_chartables.o] Error 1
error: Bad exit status from /syscfg/opkg/RPM/TMP/rpm-tmp.2653 (%build)

I tried building the libtool package and forcing the Makefile to use it
instead of its own and it built.


That's certainly because PCRE contains an older GNU libtool version than
the "libtool" package itself. The older libtool seems to be not able to
recognize your platform correctly.


However, the first program I built
after it (postfix) would coredump trying to run any of its programs -
all complaining about loading libpcre.so.0.


That's because the GNU libtool from the "libtool" package build with
--enable-shared to make sure it is able to build shared libraries -- as
it is intended for developers _using_ OpenPKG, not for other packages
_building_ with it. You now used this GNU libtool to build PCRE and it
then by default built shared libraries (your libpcre.so.0). As a dirty
workaround you can add an "rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/*.la"
and "rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/*.so*" to your hacked
pcre.spec file's %install section. This way you do not install the
shared library version.

                                       Ralf S. Engelschall
                                       [EMAIL PROTECTED]
                                       www.engelschall.com


Looks good now, thanks. Here are the %build & %install sections I hacked:

%build
    CC="%{l_cc}" \
    CFLAGS="%{l_cflags -O}" \
    ./configure \
        --prefix=%{l_prefix} \
        --disable-cpp \
        --disable-shared
# Testing using newer GNU libtool
    %{l_shtool} subst \
-e 's;LIBTOOL = $(SHELL) $(top_builddir)/libtool;LIBTOOL = $(BINDIR)/libtool;' \
        Makefile
# End test
    %{l_make} %{l_mflags}

%install
    rm -rf $RPM_BUILD_ROOT
    %{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT
    strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
# Removing shared libraries that newer libtool created
    rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/*.la
    rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/*.so*
# end testing
    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}

DOug
______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
User Communication List                      openpkg-users@openpkg.org

Reply via email to