Subject: pkg/35937: converters/libiconv fails on Debian/Linux 2.4
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <uli@habel.name>
List: pkgsrc-bugs
Date: 03/06/2007 21:35:00
>Number:         35937
>Category:       pkg
>Synopsis:       converters/libiconv fails on Debian/Linux 2.4
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Mar 06 21:35:00 +0000 2007
>Originator:     Ulrich Habel
>Release:        Linux 2.4 (Debian Sarge)
>Organization:
-
>Environment:
Linux newton 2.4.27-3-686 #1 Tue Dec 5 21:03:54 UTC 2006 i686 GNU/Linux
>Description:
converters/libiconv fails on Linux Debian Sarge with the following error:

[...]
checking for strip... strip
checking whether make sets $(MAKE)... (cached) yes
checking for i386-debian-linux-gcc... gcc
checking for C compiler default output file name... configure: error: C compiler cannot create executables
See `config.log' for more details.
*** Error code 77

config.log says:

Reading specs from /usr/pkg/gcc-2.95.3/lib/gcc-lib/i386-debian-linux/2.95.3/specs
gcc version 2.95.3 20010315 (release) (NetBSD nb3)
configure:2309: $? = 0
configure:2311: gcc -V </dev/null >&5
gcc: invalid version number format

[wrapper.sh] note: The real command line, after the pkgsrc wrapper, was:
/usr/pkgsrc/converters/libiconv/work/.gcc/bin/gcc -V -std=gnu99 -I/usr/pkgsrc/converters/libiconv/work/.buildlink/include -L/usr/pkgsrc/converters/libiconv/work/.buildlink/lib 
configure:2314: $? = 1
configure:2337: checking for C compiler default output file name
configure:2340: gcc -O2 -I/usr/pkg/include -I/usr/pkg/include -L/usr/pkg/gcc-2.95.3/lib/gcc-lib/i386-debian-linux/2.95.3 -Wl,-R/usr/pkg/gcc-2.95.3/lib/gcc-lib/i386-debian-linux/2.95.3 -L/usr/pkg/gcc-2.95.3/lib -Wl,-R/usr/pkg/gcc-2.95.3/lib -Wl,-R/usr/pkg/lib conftest.c  >&5
cc1: unknown C standard `gnu99'
>How-To-Repeat:
Try to build converters/libiconv.
>Fix:
It seems that the gcc-2.95 on Sarge doesn't understand the option -c99/-gnu99 as C standard. I used this small patch to check if the current platform is Linux and avoid the term USE_LANGUAGES+= c99 c++. However, I am not sure if the c99 setting is needed on other platforms so I exclude them. The setting of USE_LANGUAGES+= c however is needed to build.

Here is the patch (unified):

--- Makefile.orig	2007-03-06 21:17:13.000000000 +0100
+++ Makefile	2007-03-06 21:17:32.000000000 +0100
@@ -15,8 +15,7 @@
 
 PKG_INSTALLATION_TYPES=	overwrite pkgviews
 PKG_DESTDIR_SUPPORT=	user-destdir
-
-USE_LANGUAGES+=		c99 c++
+USE_LANGUAGES+=		c++
 USE_LIBTOOL=		yes
 GNU_CONFIGURE=		yes
 
@@ -45,4 +44,13 @@
 	cd ${WRKSRC}/libcharset/lib && ${MAKE} libdir=${EGDIR} DESTDIR=${DESTDIR:Q} \
 		install-charset-alias
 
+.include "../../mk/bsd.prefs.mk"
+
+.if ${OPSYS} != "Linux"
+ USE_LANGUAGES+=	c99
+.else
+ USE_LANGUAGES+=	c
+.endif
+
 .include "../../mk/bsd.pkg.mk"
+