Opened 19 years ago
Closed 19 years ago
#905 closed defect (invalid)
Strange new build failure in psLib
| Reported by: | Owned by: | eugene | |
|---|---|---|---|
| Priority: | high | Milestone: | |
| Component: | build | Version: | unspecified |
| Severity: | critical | Keywords: | |
| Cc: |
Description
I played with the -I settings for mysql in the psLib Makefile, editing it by hand (I had emailed Josh about a Mac compile failure where the include and lib path for mysql have an extraneous mysql appended at the end, e.g. /usr/local/mysql/lib/mysql instead of /usr/local/mysql/lib/). Then I thought 'what if Gene's new psconfig.chs and psbuild have fixed that already?' and so rebuilt psLib with -clean -rebuild. It then threw this error (I omit all the configure stuff):
jester@panapple psconfig$ psbuild -only psLib
psconfigure: configure --prefix=/Users/jester/psconfig/ipp-2.2.darwin_x86 --bindir=/Users/jester/psconfig/ipp-2.2.darwin_x86/bin --libdir=/Users/jester/psconfig/ipp-2.2.darwin_x86/lib --mandir=/Users/jester/psconfig/man --includedir=/Users/jester/psconfig/ipp-2.2.darwin_x86/include --sysconfdir=/Users/jester/psconfig/ipp-2.2.darwin_x86/etc --datadir=/Users/jester/psconfig/ipp-2.2.darwin_x86/share
psautogen: autogen.sh --prefix=/Users/jester/psconfig/ipp-2.2.darwin_x86 --bindir=/Users/jester/psconfig/ipp-2.2.darwin_x86/bin --libdir=/Users/jester/psconfig/ipp-2.2.darwin_x86/lib --mandir=/Users/jester/psconfig/man --includedir=/Users/jester/psconfig/ipp-2.2.darwin_x86/include --sysconfdir=/Users/jester/psconfig/ipp-2.2.darwin_x86/etc --datadir=/Users/jester/psconfig/ipp-2.2.darwin_x86/share
psperlbuild: perl Build.PL --prefix /Users/jester/psconfig/ipp-2.2.darwin_x86 --install_path script=/Users/jester/psconfig/ipp-2.2.darwin_x86/bin --install_path arch=/Users/jester/psconfig/ipp-2.2.darwin_x86/bin --install_path bin=/Users/jester/psconfig/ipp-2.2.darwin_x86/bin --install_path lib=/Users/jester/psconfig/ipp-2.2.darwin_x86/lib --install_path bindoc=/Users/jester/psconfig/ipp-2.2.darwin_x86/man/man1 --install_path libdoc=/Users/jester/psconfig/ipp-2.2.darwin_x86/man/man3
workdir: ../psLib
psbuild: psLib
make
Making all in m4
make[1]: Nothing to be done for `all'.
Making all in etc
make all-am
make[2]: Nothing to be done for `all-am'.
Making all in src
make all-recursive
Making all in sys
make all-am
/bin/sh ../../libtool --mode=link --tag=CC gcc -std=gnu99 -pipe -O0 -g -Wall -Werror -D_XOPEN_SOURCE=600 -D_POSIX_C_SOURCE=200112L -o libpslibsys.la libpslibsys_la-psAbort.lo libpslibsys_la-psConfigure.lo libpslibsys_la-psError.lo libpslibsys_la-psErrorCodes.lo libpslibsys_la-psLine.lo libpslibsys_la-psLogMsg.lo libpslibsys_la-psMemory.lo libpslibsys_la-psSlurp.lo libpslibsys_la-psString.lo libpslibsys_la-psTrace.lo libpslibsys_la-psType.lo libpslibsys_la-strcasestr.lo
rm -fr .libs/libpslibsys.a
ar cru .libs/libpslibsys.a .libs/libpslibsys_la-psAbort.o .libs/libpslibsys_la-psConfigure.o .libs/libpslibsys_la-psError.o .libs/libpslibsys_la-psErrorCodes.o .libs/libpslibsys_la-psLine.o .libs/libpslibsys_la-psLogMsg.o .libs/libpslibsys_la-psMemory.o .libs/libpslibsys_la-psSlurp.o .libs/libpslibsys_la-psString.o .libs/libpslibsys_la-psTrace.o .libs/libpslibsys_la-psType.o .libs/libpslibsys_la-strcasestr.o~ranlib .libs/libpslibsys.a
ar: .libs/libpslibsys_la-strcasestr.o~ranlib: No such file or directory
make[4]: * [libpslibsys.la] Error 1
make[3]: * [all] Error 2
make[2]: * [all-recursive] Error 1
make[1]: * [all] Error 2
make: * [all-recursive] Error 1
problem building psLib : failure in make
somehow libtool adds a ~ranlib to the end of .libs/libpslibsys_la-strcasestr.o in lines like
old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs\$old_deplibs~\$RANLIB \$oldlib"
old_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$oldlib"
old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs\$old_deplibs~\$RANLIB \$oldlib"
old_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$oldlib"
old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs\$old_deplibs~\$RANLIB \$oldlib"
old_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$oldlib"
This happens both with the old and the new psbuild/psconfig.csh... I only edited a Makefile which got since remade, so I wonder what's going on.
If you can spot immediately what's wrong, let me know; otherwise, I'll try to do another install from a fresh tarball to make sure it wasn't me.
Attachments (1)
Change History (8)
by , 19 years ago
| Attachment: | Makefile.am added |
|---|
comment:1 by , 19 years ago
| Status: | new → assigned |
|---|
I believe that I've seen this issue before with libtool on OSX. I think that it might be a whitespace issue in Makefile.am. Can you replace src/sys/Makefile.am with the attached version?
comment:2 by , 19 years ago
Hi Josh,
just tried this new patch, but that's not it, the error persists.
I just noticed that it says this at the beginning of the compile:
glibtoolize: /usr/share/aclocal/libtool.m4' is serial 47, less than 48 in aclocal.m4'
To remain compatible, you should update your `aclocal.m4' by running aclocal.
glibtoolize: /usr/share/aclocal/libtool.m4' is serial 47, less than 48 in aclocal.m4'
To remain compatible, you should update your `aclocal.m4' by running aclocal.
So I ran aclocal, but it says
aclocal: aclocal.m4 unchanged
and then I still get the same message from glibtoolize and the same ranlib error at the end. Maybe that means something?
Since the $deplibs~$RANLIB already appears in psLib/libtool, I think the error must be up there somewhere? I looked at the corresponding compile step on Linux, and the libtool file there has the same ~\$RANLIB in it, but libtool produces a different ar call:
ar cru .libs/libpslibsys.a .libs/libpslibsys_la-psAbort.o .libs/libpslibsys_la-
psConfigure.o .libs/libpslibsys_la-psError.o .libs/libpslibsys_la-psErrorCodes.o .libs/libpslibsys_la-psLine.o .libs/libpslibsys_la-psLogMsg.o .libs/libpslibsys_la-psMemory.o .libs/libpslibsys_la-psSlurp.o .libs/libpslibsys_la-psString.o .libs/libpslibsys_la-psTrace.o .libs/libpslibsys_la-psType.o .libs/libpslibsys_la-strcasestr.o
and then the next line is
ranlib .libs/libpslibsys.a
so somehow the Linux libtool at one point turns the ~ into a line break, but the one on the Mac doesn't do it.
I'm using bash both on Linux and the Mac, but they have different versions:
Linux: GNU bash, version 3.1.17(1)-release (x86_64-suse-linux-gnu)
Mac: GNU bash, version 2.05b.0(1)-release (powerpc-apple-darwin8.0)
That's all the digging I could think of - let me know if you need more info.
Cheers,
Sebastian
comment:3 by , 19 years ago
This is sounding very familiar to me. What version of libtool do you have on your system? Is it the latest available from fink?
If you do a clean unpack of the IPP 2.2/pslib sources are run just configure (not autogen.sh or any of the other autotools) do you still get the error?
comment:4 by , 19 years ago
The libtool versions are identical:
ltmain.sh (GNU libtool) 1.5.22 (1.1220.2.365 2005/12/18 22:14:06)
running configure and make in a fresh psLib source tree indeed does not produce the error.
S
comment:5 by , 19 years ago
OK - I don't think there's much we can do to work around a broken dev tool. I'll file a bug on libtool if one does not already exist.
I believe that the best solution would be for psbuild to not run autogen.sh in the default case as this should be a developer only operation.
comment:6 by , 19 years ago
| op_sys: | Linux → Mac OS |
|---|---|
| rep_platform: | PC → Macintosh |
Just noticed that this was misclassified as Linux - this is on a Mac
comment:7 by , 19 years ago
| Resolution: | → invalid |
|---|---|
| Status: | assigned → closed |
Since this is a bug related to a broken version of a locally installed tool there's not much we can do to fix it.

src/sys/Makefile.am