Date: Mon, 17 Feb 2014 16:41:11 +0100 (CET) From: Tijl Coosemans <tijl@FreeBSD.org> To: FreeBSD-gnats-submit@freebsd.org Subject: ports/186846: [patch] converters/libiconv: compilation with -Oz broken Message-ID: <201402171541.s1HFfBsH019334@kalimero.tijl.coosemans.org> Resent-Message-ID: <201402171550.s1HFo1xp024932@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 186846 >Category: ports >Synopsis: [patch] converters/libiconv: compilation with -Oz broken >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Mon Feb 17 15:50:01 UTC 2014 >Closed-Date: >Last-Modified: >Originator: Tijl Coosemans >Release: FreeBSD 11.0-CURRENT i386 >Organization: >Environment: >Description: Compilation is currently broken with clang and "env CFLAGS=-Oz make". libtool: link: cc -Oz -fno-strict-aliasing iconv_no_i18n.o -o .libs/iconv_no_i18 n ../srclib/libicrt.a ../lib/.libs/libiconv.so -Wl,-rpath -Wl,/usr/local/lib ../lib/.libs/libiconv.so: undefined reference to `aliases2_lookup' cc: error: linker command failed with exit code 1 (use -v to see invocation) *** Error code 1 aliases2_lookup is an inline function that isn't inlined with -Oz so it must be exported, meaning the code expects gnu89 semantics for the inline keyword. The patch below also enables -fvisibility=hidden and adds a patch to keep some symbols like iconv_open visible. It was disabled because it caused these symbols to be hidden: http://www.marcuscom.com:8080/cgi-bin/cvsweb.cgi/ports/converters/libiconv/Attic/Makefile?rev=1.2&content-type=text/x-cvsweb-markup >How-To-Repeat: >Fix: --- libiconv.patch begins here --- Index: converters/libiconv/Makefile =================================================================== --- converters/libiconv/Makefile (revision 344709) +++ converters/libiconv/Makefile (working copy) @@ -3,21 +3,21 @@ PORTNAME= libiconv PORTVERSION= 1.14 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= converters devel MASTER_SITES= GNU MAINTAINER= gnome@FreeBSD.org -COMMENT= A character set conversion library +COMMENT= Character set conversion library GNU_CONFIGURE= yes CONFIGURE_ARGS= --enable-static \ --without-libintl-prefix \ --docdir=${DOCSDIR} -CONFIGURE_ENV= gl_cv_cc_visibility="no" \ - am_cv_func_iconv="yes" \ +CONFIGURE_ENV= am_cv_func_iconv="yes" \ am_cv_proto_iconv_arg1="const" MAKE_JOBS_UNSAFE= yes +USE_CSTD= gnu89 USE_LDCONFIG= yes OPTIONS_DEFINE= ENCODINGS PATCHES Index: converters/libiconv/files/patch-lib-iconv.c =================================================================== --- converters/libiconv/files/patch-lib-iconv.c (revision 0) +++ converters/libiconv/files/patch-lib-iconv.c (working copy) @@ -0,0 +1,11 @@ +--- lib/iconv.c.orig ++++ lib/iconv.c +@@ -598,7 +598,7 @@ + It wants to define the symbols 'iconv_open', 'iconv', 'iconv_close'. */ + #define strong_alias(name, aliasname) _strong_alias(name, aliasname) + #define _strong_alias(name, aliasname) \ +- extern __typeof (name) aliasname __attribute__ ((alias (#name))); ++ extern LIBICONV_DLL_EXPORTED __typeof (name) aliasname __attribute__ ((alias (#name))); + #undef iconv_open + #undef iconv + #undef iconv_close Property changes on: converters/libiconv/files/patch-lib-iconv.c ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property --- libiconv.patch ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201402171541.s1HFfBsH019334>