Don't depend on converters/libiconv if base system is built WITH_ICONV. And fix build with a few popular ports. To reduce the number of false positives try $ ln -s /usr/lib/libc.so /usr/lib/libiconv.so $ ln -s /usr/lib/libc.a /usr/lib/libiconv.a as some ports explicitly add -liconv to LDFLAGS. How-To-Repeat: $ cd www/firefox; make install $ ldd /usr/local/lib/firefox/libxul.so | fgrep iconv
Responsible Changed From-To: freebsd-ports-bugs->portmgr bsd.port.mk is portmgr territory (via the GNATS Auto Assign Tool)
lang/gcc* also fail to build because - fake bool decls are broken when <iconv.h> pulls <stdbool.h> - libstdc++ wants iconv as a symbol, not as a macro
Jan Beich <jbeich@tormail.net> writes: > - libstdc++ wants iconv as a symbol, not as a macro ditto for boost-libs 1.48.0
Author: gerald Date: Wed Sep 4 16:54:13 2013 New Revision: 326294 URL: http://svnweb.freebsd.org/changeset/ports/326294 Log: Update to the 20130831 snapshot of GCC 4.7.4. Work around a bug in libcpp that pulls in the optional system iconv if present instead of relying on the port we actually depend on. [1] The issue is that /usr/include/iconv.h has #include <stdbool.h> which in turn, since both are included very late in the game, conflicts with similar definintions by libcpp itself. Interestingly enough, lang/gcc46 and lang/gcc48 did not fail under the same test scenarios and libstdc++ does not seem to require adjustments, so PR 161417 may not be relevant in full. PR: 161417 [1] Added: head/lang/gcc47/files/patch-libcpp (contents, props changed) Modified: head/lang/gcc47/Makefile head/lang/gcc47/distinfo Modified: head/lang/gcc47/Makefile ============================================================================== --- head/lang/gcc47/Makefile Wed Sep 4 16:51:12 2013 (r326293) +++ head/lang/gcc47/Makefile Wed Sep 4 16:54:13 2013 (r326294) @@ -2,7 +2,7 @@ # $FreeBSD$ PORTNAME= gcc -PORTVERSION= 4.7.4.20130817 +PORTVERSION= 4.7.4.20130831 CATEGORIES= lang java MASTER_SITES= ${MASTER_SITE_GCC} MASTER_SITE_SUBDIR= snapshots/${DISTVERSION} Modified: head/lang/gcc47/distinfo ============================================================================== --- head/lang/gcc47/distinfo Wed Sep 4 16:51:12 2013 (r326293) +++ head/lang/gcc47/distinfo Wed Sep 4 16:54:13 2013 (r326294) @@ -1,2 +1,2 @@ -SHA256 (gcc-4.7-20130817.tar.bz2) = 3752ec9a294ae2d619dc3a7e47e4ce3dfd754a6304a96b6822f8f9697ebd79ea -SIZE (gcc-4.7-20130817.tar.bz2) = 78810078 +SHA256 (gcc-4.7-20130831.tar.bz2) = 6a0cc169b93bcdab26406104bf1d80ae9f6789f28938589de0e3d745c6ed41c0 +SIZE (gcc-4.7-20130831.tar.bz2) = 78797213 Added: head/lang/gcc47/files/patch-libcpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lang/gcc47/files/patch-libcpp Wed Sep 4 16:54:13 2013 (r326294) @@ -0,0 +1,10 @@ +--- libcpp/internal.h 2012-07-30 09:24:59.000000000 +0000 ++++ libcpp/internal.h 2013-09-04 00:41:26.000000000 +0000 +@@ -27,6 +27,7 @@ + #include "cpp-id-data.h" + + #if HAVE_ICONV ++#define __bool_true_false_are_defined + #include <iconv.h> + #else + #define HAVE_ICONV 0 _______________________________________________ svn-ports-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-ports-all To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
Author: gerald Date: Thu Sep 5 20:08:27 2013 New Revision: 326441 URL: http://svnweb.freebsd.org/changeset/ports/326441 Log: Work around a bug in libcpp that pulls in the optional system iconv if present instead of relying on the port we actually depend on. The issue is that /usr/include/iconv.h has #include <stdbool.h> which in turn, since both are included very late in the game, conflicts with similar definintions by libcpp itself. Interestingly enough, lang/gcc46 and lang/gcc48 did not fail under the same test scenarios and libstdc++ does not seem to require adjustments, so PR 161417 may not be relevant in full. PR: 161417 Added: head/lang/gcc46/files/patch-libcpp (contents, props changed) Added: head/lang/gcc46/files/patch-libcpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lang/gcc46/files/patch-libcpp Thu Sep 5 20:08:27 2013 (r326441) @@ -0,0 +1,10 @@ +--- libcpp/internal.h 2012-07-30 09:24:59.000000000 +0000 ++++ libcpp/internal.h 2013-09-04 00:41:26.000000000 +0000 +@@ -27,6 +27,7 @@ + #include "cpp-id-data.h" + + #if HAVE_ICONV ++#define __bool_true_false_are_defined + #include <iconv.h> + #else + #define HAVE_ICONV 0 _______________________________________________ svn-ports-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-ports-all To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
Author: gerald Date: Thu Sep 5 22:26:42 2013 New Revision: 326453 URL: http://svnweb.freebsd.org/changeset/ports/326453 Log: Work around a bug in libcpp that pulls in the optional system iconv if present instead of relying on the port we actually depend on. The issue is that /usr/include/iconv.h has #include <stdbool.h> which in turn, since both are included very late in the game, conflicts with similar definintions by libcpp itself. libstdc++ does not seem to require adjustments, so PR 161417 may not be relevant in full. PR: 161417 Added: head/lang/gcc/files/patch-libcpp (contents, props changed) Added: head/lang/gcc/files/patch-libcpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lang/gcc/files/patch-libcpp Thu Sep 5 22:26:42 2013 (r326453) @@ -0,0 +1,10 @@ +--- libcpp/internal.h 2012-07-30 09:24:59.000000000 +0000 ++++ libcpp/internal.h 2013-09-04 00:41:26.000000000 +0000 +@@ -27,6 +27,7 @@ + #include "cpp-id-data.h" + + #if HAVE_ICONV ++#define __bool_true_false_are_defined + #include <iconv.h> + #else + #define HAVE_ICONV 0 _______________________________________________ svn-ports-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-ports-all To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
Author: gerald Date: Fri Sep 6 18:11:06 2013 New Revision: 326533 URL: http://svnweb.freebsd.org/changeset/ports/326533 Log: Work around a bug in libcpp that pulls in the optional system iconv if present (even if the libiconv port is present) and fails using that. The issue is that /usr/include/iconv.h has #include <stdbool.h> which in turn, since both are included very late in the game, conflicts with similar definintions by libcpp itself. libstdc++ does not seem to require adjustments, so PR 161417 may not be relevant in full. PR: 161417 Added: head/lang/gcc42/files/patch-libcpp (contents, props changed) Added: head/lang/gcc42/files/patch-libcpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lang/gcc42/files/patch-libcpp Fri Sep 6 18:11:06 2013 (r326533) @@ -0,0 +1,10 @@ +--- libcpp/internal.h 2012-07-30 09:24:59.000000000 +0000 ++++ libcpp/internal.h 2013-09-04 00:41:26.000000000 +0000 +@@ -27,6 +27,7 @@ + #include "cpp-id-data.h" + + #if HAVE_ICONV ++#define __bool_true_false_are_defined + #include <iconv.h> + #else + #define HAVE_ICONV 0 _______________________________________________ svn-ports-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-ports-all To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
Author: gerald Date: Fri Sep 6 19:25:24 2013 New Revision: 326538 URL: http://svnweb.freebsd.org/changeset/ports/326538 Log: Work around a bug in libcpp that pulls in the optional system iconv if present (even if the libiconv port is present and requested) and fails using that. The issue is that /usr/include/iconv.h has #include <stdbool.h> which in turn, since both are included very late in the game, conflicts with similar definintions by libcpp itself. libstdc++ does not seem to require adjustments, so PR 161417 may not be relevant in full. PR: 161417 Added: head/lang/gcc44/files/patch-libcpp (contents, props changed) Added: head/lang/gcc44/files/patch-libcpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lang/gcc44/files/patch-libcpp Fri Sep 6 19:25:24 2013 (r326538) @@ -0,0 +1,10 @@ +--- libcpp/internal.h 2012-07-30 09:24:59.000000000 +0000 ++++ libcpp/internal.h 2013-09-04 00:41:26.000000000 +0000 +@@ -27,6 +27,7 @@ + #include "cpp-id-data.h" + + #if HAVE_ICONV ++#define __bool_true_false_are_defined + #include <iconv.h> + #else + #define HAVE_ICONV 0 _______________________________________________ svn-ports-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-ports-all To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
State Changed From-To: open->closed Fixed now. Thanks!
A commit references this bug: Author: gerald Date: Mon Dec 5 01:04:08 UTC 2016 New revision: 427827 URL: https://svnweb.freebsd.org/changeset/ports/427827 Log: Remove gcc/files/patch-libcpp which has not been present on lang/gcc49 and lang/gcc48, but is something we have in lang/gcc47 and that lang/gcc carried over from the days it was about GCC 4.7 (so surviving both the transitions to GCC 4.8 and recently GCC 4.9). The underlying issue was addressed upstream 2014-10-24 with r216679, and in FreeBSD head 2013-09-06 by theraven@ who fixed fixed our iconv.h to not include stdbool.h. PR: 161417 Changes: head/lang/gcc/files/patch-libcpp