Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: link problems



Hi

On 09/10/2013 7:00, Frank Kardel wrote:
My build just finished:

In the current state my amd64 build shows ~90 packages the
aforementioned show link failures.

Right now -current as of 2013-10-03 and pkgsrc 2013Q3 do not get along
very well.

So we need a general binutils fix or fix 90+ packages.

Frank

On 10/04/13 20:44, Frank Kardel wrote:
When bulk building pkgsrc 2013Q3 on -current as of 2013-10-03 I see quit a few link failures like

2013/10/04 18:35:10 1126/11478= 9.8% editors/ce @ x86_64> gcc -L/usr/lib -Wl,-R/usr/lib -Wl,-R/usr/pkg/lib -O2 -I/usr/include -o ce basic.o bind.o buffer.o cinfo.o complete.o dir.o file.o fileio.o fio.o func.o help.o key.o line.o ml.o paragraph.o paren.o random.o regexp.o region.o rsearch.o search.o window.o word.o misc.o bug.o cmode.o spawn.o tty.o ttyio.o display.o main.o version.o vers.o -lcurses 2013/10/04 18:35:10 1126/11478= 9.8% editors/ce @ x86_64> ld: tty.o: undefined reference to symbol 'tgoto' 2013/10/04 18:35:10 1126/11478= 9.8% editors/ce @ x86_64> ld: note: 'tgoto' is defined in DSO /usr/lib/libterminfo.so.1 so try adding it to the linker command line 2013/10/04 18:35:10 1126/11478= 9.8% editors/ce @ x86_64> /usr/lib/libterminfo.so.1: could not read symbols: Invalid operation 2013/10/04 18:35:10 1126/11478= 9.8% editors/ce @ x86_64> *** Error code 1

Could this be caused by the new binutils now requiring the DT_NEEDED libraries be explicitly listed at compile time? - this seems to cause many packages to fail.

Frank

The problem here is that ce doesn't actually use any curses functions - it uses termcap instead. However, the packager is forcing the use of -lcurses which is wrong. Curses does not imply either termcap or terminfo - curses could change to a really different database and still work.

So the correct fix is to change the package to use termcap correctly.
I've attached the diff (already committed) below to help people fix other packages.

Thanks

Roy
Index: ce/Makefile
===================================================================
RCS file: /cvsroot/pkgsrc/editors/ce/Makefile,v
retrieving revision 1.19
diff -u -p -r1.19 Makefile
--- ce/Makefile 3 Oct 2012 11:43:31 -0000       1.19
+++ ce/Makefile 9 Oct 2013 08:54:09 -0000
@@ -18,5 +18,5 @@ INSTALL_TARGET=               install man-install
 
 INSTALLATION_DIRS=     bin ${PKGMANDIR}/man1
 
-.include "../../mk/curses.buildlink3.mk"
+.include "../../mk/termcap.buildlink3.mk"
 .include "../../mk/bsd.pkg.mk"
Index: ce/Makefile.common
===================================================================
RCS file: /cvsroot/pkgsrc/editors/ce/Makefile.common,v
retrieving revision 1.11
diff -u -p -r1.11 Makefile.common
--- ce/Makefile.common  12 Jun 2013 12:35:35 -0000      1.11
+++ ce/Makefile.common  9 Oct 2013 08:54:09 -0000
@@ -15,7 +15,6 @@ MAKE_JOBS_SAFE=               no
 GNU_CONFIGURE=         yes
 CONFIGURE_ARGS+=       --libdir=${PREFIX}/share/doc
 CONFIGURE_ARGS+=       --without-ce-malloc
-CONFIGURE_ARGS+=       --with-curses
 
 PATCHDIR=              ${.CURDIR}/../ce/patches
 DISTINFO_FILE=         ${.CURDIR}/../ce/distinfo
Index: ce-x11/Makefile
===================================================================
RCS file: /cvsroot/pkgsrc/editors/ce-x11/Makefile,v
retrieving revision 1.20
diff -u -p -r1.20 Makefile
--- ce-x11/Makefile     3 Oct 2012 11:43:31 -0000       1.20
+++ ce-x11/Makefile     9 Oct 2013 08:54:09 -0000
@@ -16,7 +16,7 @@ INSTALLATION_DIRS=    bin ${PKGMANDIR}/man1
 
 BUILDLINK_DEPMETHOD.libXt?=    build
 
-.include "../../mk/curses.buildlink3.mk"
+.include "../../mk/termcap.buildlink3.mk"
 .include "../../x11/libX11/buildlink3.mk"
 .include "../../x11/libXt/buildlink3.mk"
 .include "../../mk/bsd.pkg.mk"


Home | Main Index | Thread Index | Old Index