Re: svn commit: r254273 - in head: . include lib lib/libc/iconv lib/libiconv_compat lib/libkiconv share/mk sys/sys tools/build/mk

2013-09-15 Thread Jilles Tjoelker
On Fri, Sep 13, 2013 at 12:19:27AM +0200, Jilles Tjoelker wrote:
 On Thu, Sep 05, 2013 at 10:15:40PM +0200, Joel Dahl wrote:
  Installworld is still broken on systems with readonly /usr/obj.

 I use this. It makes the mapper.dir and similar files depend on their
 actual sources instead of phony targets, and therefore only rebuilt when
 needed.

The previous patch had some problems (two makes in parallel in the same
directory, no rebuild when the sources of the $i/foo.$i files changed in
-DNOCLEAN mode). This patch should work better. It avoids changing the
targets and instead leaves the destination file untouched if the content
remains the same.

Index: share/i18n/csmapper/Makefile
===
--- share/i18n/csmapper/Makefile(revision 255570)
+++ share/i18n/csmapper/Makefile(working copy)
@@ -7,10 +7,11 @@
KAZAKH KOI KS MISC TCVN
 
 mapper.dir: ${SUBDIR}
-${.TARGET}
-.for i in ${SUBDIR}
-   cat ${i}/mapper.dir.${i}  ${.TARGET}
-.endfor
+   newfile=$$(for i in ${SUBDIR}; do \
+   cat $$i/mapper.dir.$$i; \
+   done); \
+   [ $$newfile = $$(cat ${.TARGET} 2/dev/null) ] || \
+   printf '%s\n' $$newfile ${.TARGET}
 mapper.dir.db: mapper.dir
${MKCSMAPPER} -m -o ${.TARGET} ${.ALLSRC}
 
@@ -18,10 +19,11 @@
 CLEANFILES+= mapper.dir mapper.dir.db
 
 charset.pivot: ${SUBDIR}
-${.TARGET}
-.for i in ${SUBDIR}
-   cat ${i}/charset.pivot.${i}  ${.TARGET}
-.endfor
+   newfile=$$(for i in ${SUBDIR}; do \
+   cat $$i/charset.pivot.$$i; \
+   done); \
+   [ $$newfile = $$(cat ${.TARGET} 2/dev/null) ] || \
+   printf '%s\n' $$newfile ${.TARGET}
 charset.pivot.pvdb: charset.pivot
${MKCSMAPPER} -p -o ${.TARGET} ${.ALLSRC}
 
Index: share/i18n/esdb/Makefile
===
--- share/i18n/esdb/Makefile(revision 255570)
+++ share/i18n/esdb/Makefile(working copy)
@@ -10,18 +10,20 @@
 CLEANFILES= ${FILES}
 
 esdb.dir: ${SUBDIR}
-$@
-.for i in ${SUBDIR}
-   cat ${i}/esdb.dir.${i} ${.TARGET}
-.endfor
+   newfile=$$(for i in ${SUBDIR}; do \
+   cat $$i/esdb.dir.$$i; \
+   done); \
+   [ $$newfile = $$(cat ${.TARGET} 2/dev/null) ] || \
+   printf '%s\n' $$newfile ${.TARGET}
 esdb.dir.db: esdb.dir
${MKESDB} -m -o ${.TARGET} ${.ALLSRC}
 
 esdb.alias: ${SUBDIR}
-$@
-.for i in ${SUBDIR}
-   cat ${i}/esdb.alias.${i} ${.TARGET}
-.endfor
+   newfile=$$(for i in ${SUBDIR}; do \
+   cat $$i/esdb.alias.$$i; \
+   done); \
+   [ $$newfile = $$(cat ${.TARGET} 2/dev/null) ] || \
+   printf '%s\n' $$newfile ${.TARGET}
 esdb.alias.db: esdb.alias
${MKESDB} -m -o ${.TARGET} ${.ALLSRC}
 

-- 
Jilles Tjoelker
___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org


Re: svn commit: r254273 - in head: . include lib lib/libc/iconv lib/libiconv_compat lib/libkiconv share/mk sys/sys tools/build/mk

2013-09-12 Thread Jilles Tjoelker
On Thu, Sep 05, 2013 at 10:15:40PM +0200, Joel Dahl wrote:
 Installworld is still broken on systems with readonly /usr/obj.

I use this. It makes the mapper.dir and similar files depend on their
actual sources instead of phony targets, and therefore only rebuilt when
needed.

Index: share/i18n/csmapper/Makefile
===
--- share/i18n/csmapper/Makefile(revision 255496)
+++ share/i18n/csmapper/Makefile(working copy)
@@ -6,7 +6,16 @@
 SUBDIR=APPLE AST BIG5 CNS CP EBCDIC GB GEORGIAN ISO646 ISO-8859 JIS \
KAZAKH KOI KS MISC TCVN
 
-mapper.dir: ${SUBDIR}
+.for i in ${SUBDIR}
+${i}/mapper.dir.${i}:
+   ${MAKE} -C ${.CURDIR}/${i} all
+mapper.dir: ${i}/mapper.dir.${i}
+${i}/charset.pivot.${i}:
+   ${MAKE} -C ${.CURDIR}/${i} all
+charset.pivot: ${i}/charset.pivot.${i}
+.endfor
+
+mapper.dir:
 ${.TARGET}
 .for i in ${SUBDIR}
cat ${i}/mapper.dir.${i}  ${.TARGET}
@@ -17,7 +26,7 @@
 FILES+=mapper.dir mapper.dir.db
 CLEANFILES+= mapper.dir mapper.dir.db
 
-charset.pivot: ${SUBDIR}
+charset.pivot:
 ${.TARGET}
 .for i in ${SUBDIR}
cat ${i}/charset.pivot.${i}  ${.TARGET}
Index: share/i18n/esdb/Makefile
===
--- share/i18n/esdb/Makefile(revision 255496)
+++ share/i18n/esdb/Makefile(working copy)
@@ -9,7 +9,16 @@
 FILES+=esdb.dir esdb.dir.db esdb.alias esdb.alias.db
 CLEANFILES= ${FILES}
 
-esdb.dir: ${SUBDIR}
+.for i in ${SUBDIR}
+${i}/esdb.dir.${i}:
+   ${MAKE} -C ${.CURDIR}/${i} all
+esdb.dir: ${i}/esdb.dir.${i}
+${i}/esdb.alias.${i}:
+   ${MAKE} -C ${.CURDIR}/${i} all
+esdb.alias: ${i}/esdb.alias.${i}
+.endfor
+
+esdb.dir:
 $@
 .for i in ${SUBDIR}
cat ${i}/esdb.dir.${i} ${.TARGET}
@@ -17,7 +26,7 @@
 esdb.dir.db: esdb.dir
${MKESDB} -m -o ${.TARGET} ${.ALLSRC}
 
-esdb.alias: ${SUBDIR}
+esdb.alias:
 $@
 .for i in ${SUBDIR}
cat ${i}/esdb.alias.${i} ${.TARGET}

-- 
Jilles Tjoelker
___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org


Re: svn commit: r254273 - in head: . include lib lib/libc/iconv lib/libiconv_compat lib/libkiconv share/mk sys/sys tools/build/mk

2013-09-05 Thread John Baldwin
On Tuesday, September 03, 2013 3:52:41 pm Joel Dahl wrote:
 On Thu, Aug 22, 2013 at 05:58:35PM +0200, Joel Dahl wrote:
  On Sun, Aug 18, 2013 at 03:51:25PM -0700, Peter Wemm wrote:
   On 8/18/13 3:42 PM, Jilles Tjoelker wrote:
On Sun, Aug 18, 2013 at 09:53:04PM +0200, Joel Dahl wrote:
On Sun, Aug 18, 2013 at 12:34:30AM +0200, Dimitry Andric wrote:
On Aug 13, 2013, at 09:15, Peter Wemm pe...@freebsd.org wrote:
Author: peter
Date: Tue Aug 13 07:15:01 2013
New Revision: 254273
URL: http://svnweb.freebsd.org/changeset/base/254273

Log:
 The iconv in libc did two things - implement the standard APIs, the 
GNU
 extensions and also tried to be link time compatible with ports 
libiconv.
 This splits that functionality and enables the parts that shouldn't
 interfere with the port by default.

 WITH_ICONV (now on by default) - adds iconv.h, iconv_open(3) etc.
 WITH_LIBICONV_COMPAT (off by default) adds the libiconv_open etc 
API, linker
 symbols and even a stub libiconv.so.3 that are good enough to be 
able
 to 'pkg delete -f libiconv' on a running system and reasonably 
expect it
 to work.

 I have tortured many machines over the last few days to try and 
reduce
 the possibilities of foot-shooting as much as I can.  I've 
successfully
 recompiled to enable and disable the libiconv_compat modes, ports 
that use
 libiconv alongside system iconv etc.  If you don't enable the
 WITH_LIBICONV_COMPAT switch, they don't share symbol space.

 This is an extension of behavior on other system.  iconv(3) is a 
standard
 libc interface and libiconv port expects to be able to run 
alongside it on
 systems that have it.

Unfortunately I expect this will break many ports, when the libiconv
port is installed.  A simple example is the following:
SNIP

It also breaks installworld when /usr/src and /usr/obj are NFS exported
read-only.

I think it has to do with share/i18n/csmapper and share/i18n/esdb using
directories as make targets. This apparently causes these files to be
rebuilt at 'make installworld' time, which is always bad but is only
detected when /usr/obj is read-only.

A hack that works is to enclose the four targets depending on ${SUBDIR}
in  .if !make(install)  .

Unfortunately, the Makefiles were written to depend on the directories
as make targets fairly deeply, so a real fix is harder.
   
   I was looking at this yesterday, but was tied up with other things.  I'll
   take a look at it today after getting a few other things done.  It should 
   be
   easy enough to replicate by changing /usr/obj to readonly on test systems.
  
  FWIW, this is still broken.
 
 Again, this is still broken.

Yeah, my laptop failed to build cups (required by ghostscript which is required
by emacs) because of this:

===   FreeBSD 10 autotools fix applied to 
/usr/ports/print/cups-image/work/cups-1.5.4/configure
Configuring CUPS with options:
...
configure: WARNING: unrecognized options: --disable-pdftops
...
checking iconv.h usability... yes
checking iconv.h presence... yes
checking for iconv.h... yes
checking for library containing iconv_open... none required
...
Linking texttops...
cc -L../cgi-bin -L../cups -L../filter -L../ppdc -L../scheduler -L/usr/local/lib 
-Wl,-rpath=/usr/lib:/usr/local/lib -Wl,-R/usr/local/lib   -Wall -Wno-
format-y2k -Wunused -fPIC -Os -g -fstack-protector -Wno-tautological-compare -o 
texttops texttops.o textcommon.o common.o -lcups  -lssl -lcrypto  -lz 
-pthread -lcrypt -lm -lssp_nonshared 
../cups/libcups.so: undefined reference to `libiconv'
../cups/libcups.so: undefined reference to `libiconv_close'
../cups/libcups.so: undefined reference to `libiconv_open'
cc: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[9]: *** [commandtops] Error 1
...

Having cups broken will probably break all of kde, etc.  Are we seeing this
in HEAD package builds yet?  (Maybe the world we are using doesn't have
this change yet?)  Note that this is just a clean build of HEAD and a fresh
build of ports from scratch.

-- 
John Baldwin
___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org


Re: svn commit: r254273 - in head: . include lib lib/libc/iconv lib/libiconv_compat lib/libkiconv share/mk sys/sys tools/build/mk

2013-09-05 Thread Joel Dahl
On Thu, Sep 05, 2013 at 10:13:34AM -0400, John Baldwin wrote:
 On Tuesday, September 03, 2013 3:52:41 pm Joel Dahl wrote:
  On Thu, Aug 22, 2013 at 05:58:35PM +0200, Joel Dahl wrote:
   On Sun, Aug 18, 2013 at 03:51:25PM -0700, Peter Wemm wrote:
On 8/18/13 3:42 PM, Jilles Tjoelker wrote:
 On Sun, Aug 18, 2013 at 09:53:04PM +0200, Joel Dahl wrote:
 On Sun, Aug 18, 2013 at 12:34:30AM +0200, Dimitry Andric wrote:
 On Aug 13, 2013, at 09:15, Peter Wemm pe...@freebsd.org wrote:
 Author: peter
 Date: Tue Aug 13 07:15:01 2013
 New Revision: 254273
 URL: http://svnweb.freebsd.org/changeset/base/254273
 
 Log:
  The iconv in libc did two things - implement the standard APIs, 
 the GNU
  extensions and also tried to be link time compatible with ports 
 libiconv.
  This splits that functionality and enables the parts that 
 shouldn't
  interfere with the port by default.
 
  WITH_ICONV (now on by default) - adds iconv.h, iconv_open(3) etc.
  WITH_LIBICONV_COMPAT (off by default) adds the libiconv_open etc 
 API, linker
  symbols and even a stub libiconv.so.3 that are good enough to be 
 able
  to 'pkg delete -f libiconv' on a running system and reasonably 
 expect it
  to work.
 
  I have tortured many machines over the last few days to try and 
 reduce
  the possibilities of foot-shooting as much as I can.  I've 
 successfully
  recompiled to enable and disable the libiconv_compat modes, ports 
 that use
  libiconv alongside system iconv etc.  If you don't enable the
  WITH_LIBICONV_COMPAT switch, they don't share symbol space.
 
  This is an extension of behavior on other system.  iconv(3) is a 
 standard
  libc interface and libiconv port expects to be able to run 
 alongside it on
  systems that have it.
 
 Unfortunately I expect this will break many ports, when the libiconv
 port is installed.  A simple example is the following:
 SNIP
 
 It also breaks installworld when /usr/src and /usr/obj are NFS 
 exported
 read-only.
 
 I think it has to do with share/i18n/csmapper and share/i18n/esdb 
 using
 directories as make targets. This apparently causes these files to be
 rebuilt at 'make installworld' time, which is always bad but is only
 detected when /usr/obj is read-only.
 
 A hack that works is to enclose the four targets depending on 
 ${SUBDIR}
 in  .if !make(install)  .
 
 Unfortunately, the Makefiles were written to depend on the directories
 as make targets fairly deeply, so a real fix is harder.

I was looking at this yesterday, but was tied up with other things.  
I'll
take a look at it today after getting a few other things done.  It 
should be
easy enough to replicate by changing /usr/obj to readonly on test 
systems.
   
   FWIW, this is still broken.
  
  Again, this is still broken.
 
 Yeah, my laptop failed to build cups (required by ghostscript which is 
 required
 by emacs) because of this:

Well, that's a different problem. Installworld is still broken on systems with
readonly /usr/obj.

-- 
Joel
___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org


Re: svn commit: r254273 - in head: . include lib lib/libc/iconv lib/libiconv_compat lib/libkiconv share/mk sys/sys tools/build/mk

2013-09-05 Thread John Baldwin
On Thursday, September 05, 2013 10:46:48 am Baptiste Daroussin wrote:
 On Thu, Sep 05, 2013 at 10:13:34AM -0400, John Baldwin wrote:
  On Tuesday, September 03, 2013 3:52:41 pm Joel Dahl wrote:
   On Thu, Aug 22, 2013 at 05:58:35PM +0200, Joel Dahl wrote:
On Sun, Aug 18, 2013 at 03:51:25PM -0700, Peter Wemm wrote:
 On 8/18/13 3:42 PM, Jilles Tjoelker wrote:
  On Sun, Aug 18, 2013 at 09:53:04PM +0200, Joel Dahl wrote:
  On Sun, Aug 18, 2013 at 12:34:30AM +0200, Dimitry Andric wrote:
  On Aug 13, 2013, at 09:15, Peter Wemm pe...@freebsd.org wrote:
  Author: peter
  Date: Tue Aug 13 07:15:01 2013
  New Revision: 254273
  URL: http://svnweb.freebsd.org/changeset/base/254273
  
  Log:
   The iconv in libc did two things - implement the standard APIs, 
  the GNU
   extensions and also tried to be link time compatible with ports 
  libiconv.
   This splits that functionality and enables the parts that 
  shouldn't
   interfere with the port by default.
  
   WITH_ICONV (now on by default) - adds iconv.h, iconv_open(3) 
  etc.
   WITH_LIBICONV_COMPAT (off by default) adds the libiconv_open 
  etc API, linker
   symbols and even a stub libiconv.so.3 that are good enough to 
  be able
   to 'pkg delete -f libiconv' on a running system and reasonably 
  expect it
   to work.
  
   I have tortured many machines over the last few days to try and 
  reduce
   the possibilities of foot-shooting as much as I can.  I've 
  successfully
   recompiled to enable and disable the libiconv_compat modes, 
  ports that use
   libiconv alongside system iconv etc.  If you don't enable the
   WITH_LIBICONV_COMPAT switch, they don't share symbol space.
  
   This is an extension of behavior on other system.  iconv(3) is 
  a standard
   libc interface and libiconv port expects to be able to run 
  alongside it on
   systems that have it.
  
  Unfortunately I expect this will break many ports, when the 
  libiconv
  port is installed.  A simple example is the following:
  SNIP
  
  It also breaks installworld when /usr/src and /usr/obj are NFS 
  exported
  read-only.
  
  I think it has to do with share/i18n/csmapper and share/i18n/esdb 
  using
  directories as make targets. This apparently causes these files to 
  be
  rebuilt at 'make installworld' time, which is always bad but is only
  detected when /usr/obj is read-only.
  
  A hack that works is to enclose the four targets depending on 
  ${SUBDIR}
  in  .if !make(install)  .
  
  Unfortunately, the Makefiles were written to depend on the 
  directories
  as make targets fairly deeply, so a real fix is harder.
 
 I was looking at this yesterday, but was tied up with other things.  
 I'll
 take a look at it today after getting a few other things done.  It 
 should be
 easy enough to replicate by changing /usr/obj to readonly on test 
 systems.

FWIW, this is still broken.
   
   Again, this is still broken.
  
  Yeah, my laptop failed to build cups (required by ghostscript which is 
  required
  by emacs) because of this:
  
  ===   FreeBSD 10 autotools fix applied to 
  /usr/ports/print/cups-image/work/cups-1.5.4/configure
  Configuring CUPS with options:
  ...
  configure: WARNING: unrecognized options: --disable-pdftops
  ...
  checking iconv.h usability... yes
  checking iconv.h presence... yes
  checking for iconv.h... yes
  checking for library containing iconv_open... none required
  ...
  Linking texttops...
  cc -L../cgi-bin -L../cups -L../filter -L../ppdc -L../scheduler 
  -L/usr/local/lib -Wl,-rpath=/usr/lib:/usr/local/lib -Wl,-R/usr/local/lib   
  -Wall -
Wno-
  format-y2k -Wunused -fPIC -Os -g -fstack-protector 
  -Wno-tautological-compare -o texttops texttops.o textcommon.o common.o 
  -lcups  -lssl -lcrypto  
-lz 
  -pthread -lcrypt -lm -lssp_nonshared 
  ../cups/libcups.so: undefined reference to `libiconv'
  ../cups/libcups.so: undefined reference to `libiconv_close'
  ../cups/libcups.so: undefined reference to `libiconv_open'
  cc: error: linker command failed with exit code 1 (use -v to see invocation)
  gmake[9]: *** [commandtops] Error 1
  ...
  
  Having cups broken will probably break all of kde, etc.  Are we seeing this
  in HEAD package builds yet?  (Maybe the world we are using doesn't have
  this change yet?)  Note that this is just a clean build of HEAD and a fresh
  build of ports from scratch.
  
 
 This should work properly now, the ports tree received motification yesterday
 and converters/libiconv is not installed anymore now.

Good grief, I just svn up'd my ports yesterday morning. :)  I'll update again,
thanks!

-- 
John Baldwin
___
svn-src-head@freebsd.org mailing list

Re: svn commit: r254273 - in head: . include lib lib/libc/iconv lib/libiconv_compat lib/libkiconv share/mk sys/sys tools/build/mk

2013-09-05 Thread John Baldwin
On Thursday, September 05, 2013 4:15:40 pm Joel Dahl wrote:
 On Thu, Sep 05, 2013 at 10:13:34AM -0400, John Baldwin wrote:
  On Tuesday, September 03, 2013 3:52:41 pm Joel Dahl wrote:
   On Thu, Aug 22, 2013 at 05:58:35PM +0200, Joel Dahl wrote:
On Sun, Aug 18, 2013 at 03:51:25PM -0700, Peter Wemm wrote:
 On 8/18/13 3:42 PM, Jilles Tjoelker wrote:
  On Sun, Aug 18, 2013 at 09:53:04PM +0200, Joel Dahl wrote:
  On Sun, Aug 18, 2013 at 12:34:30AM +0200, Dimitry Andric wrote:
  On Aug 13, 2013, at 09:15, Peter Wemm pe...@freebsd.org wrote:
  Author: peter
  Date: Tue Aug 13 07:15:01 2013
  New Revision: 254273
  URL: http://svnweb.freebsd.org/changeset/base/254273
  
  Log:
   The iconv in libc did two things - implement the standard APIs, 
  the GNU
   extensions and also tried to be link time compatible with ports 
  libiconv.
   This splits that functionality and enables the parts that 
  shouldn't
   interfere with the port by default.
  
   WITH_ICONV (now on by default) - adds iconv.h, iconv_open(3) 
  etc.
   WITH_LIBICONV_COMPAT (off by default) adds the libiconv_open 
  etc API, linker
   symbols and even a stub libiconv.so.3 that are good enough to 
  be able
   to 'pkg delete -f libiconv' on a running system and reasonably 
  expect it
   to work.
  
   I have tortured many machines over the last few days to try and 
  reduce
   the possibilities of foot-shooting as much as I can.  I've 
  successfully
   recompiled to enable and disable the libiconv_compat modes, 
  ports that use
   libiconv alongside system iconv etc.  If you don't enable the
   WITH_LIBICONV_COMPAT switch, they don't share symbol space.
  
   This is an extension of behavior on other system.  iconv(3) is 
  a standard
   libc interface and libiconv port expects to be able to run 
  alongside it on
   systems that have it.
  
  Unfortunately I expect this will break many ports, when the 
  libiconv
  port is installed.  A simple example is the following:
  SNIP
  
  It also breaks installworld when /usr/src and /usr/obj are NFS 
  exported
  read-only.
  
  I think it has to do with share/i18n/csmapper and share/i18n/esdb 
  using
  directories as make targets. This apparently causes these files to 
  be
  rebuilt at 'make installworld' time, which is always bad but is only
  detected when /usr/obj is read-only.
  
  A hack that works is to enclose the four targets depending on 
  ${SUBDIR}
  in  .if !make(install)  .
  
  Unfortunately, the Makefiles were written to depend on the 
  directories
  as make targets fairly deeply, so a real fix is harder.
 
 I was looking at this yesterday, but was tied up with other things.  
 I'll
 take a look at it today after getting a few other things done.  It 
 should be
 easy enough to replicate by changing /usr/obj to readonly on test 
 systems.

FWIW, this is still broken.
   
   Again, this is still broken.
  
  Yeah, my laptop failed to build cups (required by ghostscript which is 
  required
  by emacs) because of this:
 
 Well, that's a different problem. Installworld is still broken on systems with
 readonly /usr/obj.

It is the problem originally reported by dim@ at the start of this thread. :)

My ports tree from today does build cups fine FWIW, but it seems there is still
a lot of fallout from this change. :(

-- 
John Baldwin
___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org


Re: svn commit: r254273 - in head: . include lib lib/libc/iconv lib/libiconv_compat lib/libkiconv share/mk sys/sys tools/build/mk

2013-09-05 Thread Andreas Tobler
On 05.09.13 22:54, John Baldwin wrote:
 On Thursday, September 05, 2013 4:15:40 pm Joel Dahl wrote:
 On Thu, Sep 05, 2013 at 10:13:34AM -0400, John Baldwin wrote:
 On Tuesday, September 03, 2013 3:52:41 pm Joel Dahl wrote:
 On Thu, Aug 22, 2013 at 05:58:35PM +0200, Joel Dahl wrote:
 On Sun, Aug 18, 2013 at 03:51:25PM -0700, Peter Wemm wrote:
 On 8/18/13 3:42 PM, Jilles Tjoelker wrote:
 On Sun, Aug 18, 2013 at 09:53:04PM +0200, Joel Dahl wrote:
 On Sun, Aug 18, 2013 at 12:34:30AM +0200, Dimitry Andric wrote:
 On Aug 13, 2013, at 09:15, Peter Wemm pe...@freebsd.org wrote:
 Author: peter
 Date: Tue Aug 13 07:15:01 2013
 New Revision: 254273
 URL: http://svnweb.freebsd.org/changeset/base/254273

 Log:
  The iconv in libc did two things - implement the standard APIs, the 
 GNU
  extensions and also tried to be link time compatible with ports 
 libiconv.
  This splits that functionality and enables the parts that shouldn't
  interfere with the port by default.

  WITH_ICONV (now on by default) - adds iconv.h, iconv_open(3) etc.
  WITH_LIBICONV_COMPAT (off by default) adds the libiconv_open etc 
 API, linker
  symbols and even a stub libiconv.so.3 that are good enough to be 
 able
  to 'pkg delete -f libiconv' on a running system and reasonably 
 expect it
  to work.

  I have tortured many machines over the last few days to try and 
 reduce
  the possibilities of foot-shooting as much as I can.  I've 
 successfully
  recompiled to enable and disable the libiconv_compat modes, ports 
 that use
  libiconv alongside system iconv etc.  If you don't enable the
  WITH_LIBICONV_COMPAT switch, they don't share symbol space.

  This is an extension of behavior on other system.  iconv(3) is a 
 standard
  libc interface and libiconv port expects to be able to run 
 alongside it on
  systems that have it.

 Unfortunately I expect this will break many ports, when the libiconv
 port is installed.  A simple example is the following:
 SNIP

 It also breaks installworld when /usr/src and /usr/obj are NFS exported
 read-only.

 I think it has to do with share/i18n/csmapper and share/i18n/esdb using
 directories as make targets. This apparently causes these files to be
 rebuilt at 'make installworld' time, which is always bad but is only
 detected when /usr/obj is read-only.

 A hack that works is to enclose the four targets depending on ${SUBDIR}
 in  .if !make(install)  .

 Unfortunately, the Makefiles were written to depend on the directories
 as make targets fairly deeply, so a real fix is harder.

 I was looking at this yesterday, but was tied up with other things.  I'll
 take a look at it today after getting a few other things done.  It 
 should be
 easy enough to replicate by changing /usr/obj to readonly on test 
 systems.

 FWIW, this is still broken.

 Again, this is still broken.

 Yeah, my laptop failed to build cups (required by ghostscript which is 
 required
 by emacs) because of this:

 Well, that's a different problem. Installworld is still broken on systems 
 with
 readonly /usr/obj.
 
 It is the problem originally reported by dim@ at the start of this thread. :)
 
 My ports tree from today does build cups fine FWIW, but it seems there is 
 still
 a lot of fallout from this change. :(

Jumping in an give my comment.

This has been fixed in the past few days. A lot of has been done and I
was also able to build my 600 pkg set w/o any iconv hickup.
A week ago I had to change the mobo of my workstation and I thought this
would be a good idea to rebuild every port I have installed. Bad idea,
every iconv related one failed. Yesterday I retried.

I had only one issue when building qcad which relies on openNURBS. And
the latter has to be compiled with -fPIC. But this is not related to the
topic.

So a big thanks to the ports people!

Andreas


___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org


Re: svn commit: r254273 - in head: . include lib lib/libc/iconv lib/libiconv_compat lib/libkiconv share/mk sys/sys tools/build/mk

2013-09-03 Thread Joel Dahl
On Thu, Aug 22, 2013 at 05:58:35PM +0200, Joel Dahl wrote:
 On Sun, Aug 18, 2013 at 03:51:25PM -0700, Peter Wemm wrote:
  On 8/18/13 3:42 PM, Jilles Tjoelker wrote:
   On Sun, Aug 18, 2013 at 09:53:04PM +0200, Joel Dahl wrote:
   On Sun, Aug 18, 2013 at 12:34:30AM +0200, Dimitry Andric wrote:
   On Aug 13, 2013, at 09:15, Peter Wemm pe...@freebsd.org wrote:
   Author: peter
   Date: Tue Aug 13 07:15:01 2013
   New Revision: 254273
   URL: http://svnweb.freebsd.org/changeset/base/254273
   
   Log:
The iconv in libc did two things - implement the standard APIs, the 
   GNU
extensions and also tried to be link time compatible with ports 
   libiconv.
This splits that functionality and enables the parts that shouldn't
interfere with the port by default.
   
WITH_ICONV (now on by default) - adds iconv.h, iconv_open(3) etc.
WITH_LIBICONV_COMPAT (off by default) adds the libiconv_open etc API, 
   linker
symbols and even a stub libiconv.so.3 that are good enough to be able
to 'pkg delete -f libiconv' on a running system and reasonably expect 
   it
to work.
   
I have tortured many machines over the last few days to try and reduce
the possibilities of foot-shooting as much as I can.  I've 
   successfully
recompiled to enable and disable the libiconv_compat modes, ports 
   that use
libiconv alongside system iconv etc.  If you don't enable the
WITH_LIBICONV_COMPAT switch, they don't share symbol space.
   
This is an extension of behavior on other system.  iconv(3) is a 
   standard
libc interface and libiconv port expects to be able to run alongside 
   it on
systems that have it.
   
   Unfortunately I expect this will break many ports, when the libiconv
   port is installed.  A simple example is the following:
   SNIP
   
   It also breaks installworld when /usr/src and /usr/obj are NFS exported
   read-only.
   
   I think it has to do with share/i18n/csmapper and share/i18n/esdb using
   directories as make targets. This apparently causes these files to be
   rebuilt at 'make installworld' time, which is always bad but is only
   detected when /usr/obj is read-only.
   
   A hack that works is to enclose the four targets depending on ${SUBDIR}
   in  .if !make(install)  .
   
   Unfortunately, the Makefiles were written to depend on the directories
   as make targets fairly deeply, so a real fix is harder.
  
  I was looking at this yesterday, but was tied up with other things.  I'll
  take a look at it today after getting a few other things done.  It should be
  easy enough to replicate by changing /usr/obj to readonly on test systems.
 
 FWIW, this is still broken.

Again, this is still broken.

-- 
Joel
___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org


Re: svn commit: r254273 - in head: . include lib lib/libc/iconv lib/libiconv_compat lib/libkiconv share/mk sys/sys tools/build/mk

2013-08-22 Thread Joel Dahl
On Sun, Aug 18, 2013 at 03:51:25PM -0700, Peter Wemm wrote:
 On 8/18/13 3:42 PM, Jilles Tjoelker wrote:
  On Sun, Aug 18, 2013 at 09:53:04PM +0200, Joel Dahl wrote:
  On Sun, Aug 18, 2013 at 12:34:30AM +0200, Dimitry Andric wrote:
  On Aug 13, 2013, at 09:15, Peter Wemm pe...@freebsd.org wrote:
  Author: peter
  Date: Tue Aug 13 07:15:01 2013
  New Revision: 254273
  URL: http://svnweb.freebsd.org/changeset/base/254273
  
  Log:
   The iconv in libc did two things - implement the standard APIs, the GNU
   extensions and also tried to be link time compatible with ports 
  libiconv.
   This splits that functionality and enables the parts that shouldn't
   interfere with the port by default.
  
   WITH_ICONV (now on by default) - adds iconv.h, iconv_open(3) etc.
   WITH_LIBICONV_COMPAT (off by default) adds the libiconv_open etc API, 
  linker
   symbols and even a stub libiconv.so.3 that are good enough to be able
   to 'pkg delete -f libiconv' on a running system and reasonably expect it
   to work.
  
   I have tortured many machines over the last few days to try and reduce
   the possibilities of foot-shooting as much as I can.  I've successfully
   recompiled to enable and disable the libiconv_compat modes, ports that 
  use
   libiconv alongside system iconv etc.  If you don't enable the
   WITH_LIBICONV_COMPAT switch, they don't share symbol space.
  
   This is an extension of behavior on other system.  iconv(3) is a 
  standard
   libc interface and libiconv port expects to be able to run alongside it 
  on
   systems that have it.
  
  Unfortunately I expect this will break many ports, when the libiconv
  port is installed.  A simple example is the following:
  SNIP
  
  It also breaks installworld when /usr/src and /usr/obj are NFS exported
  read-only.
  
  I think it has to do with share/i18n/csmapper and share/i18n/esdb using
  directories as make targets. This apparently causes these files to be
  rebuilt at 'make installworld' time, which is always bad but is only
  detected when /usr/obj is read-only.
  
  A hack that works is to enclose the four targets depending on ${SUBDIR}
  in  .if !make(install)  .
  
  Unfortunately, the Makefiles were written to depend on the directories
  as make targets fairly deeply, so a real fix is harder.
 
 I was looking at this yesterday, but was tied up with other things.  I'll
 take a look at it today after getting a few other things done.  It should be
 easy enough to replicate by changing /usr/obj to readonly on test systems.

FWIW, this is still broken.

-- 
Joel
___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org


Re: svn commit: r254273 - in head: . include lib lib/libc/iconv lib/libiconv_compat lib/libkiconv share/mk sys/sys tools/build/mk

2013-08-18 Thread Joel Dahl
On Sun, Aug 18, 2013 at 12:34:30AM +0200, Dimitry Andric wrote:
 On Aug 13, 2013, at 09:15, Peter Wemm pe...@freebsd.org wrote:
  Author: peter
  Date: Tue Aug 13 07:15:01 2013
  New Revision: 254273
  URL: http://svnweb.freebsd.org/changeset/base/254273
  
  Log:
   The iconv in libc did two things - implement the standard APIs, the GNU
   extensions and also tried to be link time compatible with ports libiconv.
   This splits that functionality and enables the parts that shouldn't
   interfere with the port by default.
  
   WITH_ICONV (now on by default) - adds iconv.h, iconv_open(3) etc.
   WITH_LIBICONV_COMPAT (off by default) adds the libiconv_open etc API, 
  linker
   symbols and even a stub libiconv.so.3 that are good enough to be able
   to 'pkg delete -f libiconv' on a running system and reasonably expect it
   to work.
  
   I have tortured many machines over the last few days to try and reduce
   the possibilities of foot-shooting as much as I can.  I've successfully
   recompiled to enable and disable the libiconv_compat modes, ports that use
   libiconv alongside system iconv etc.  If you don't enable the
   WITH_LIBICONV_COMPAT switch, they don't share symbol space.
  
   This is an extension of behavior on other system.  iconv(3) is a standard
   libc interface and libiconv port expects to be able to run alongside it on
   systems that have it.
 
 Unfortunately I expect this will break many ports, when the libiconv
 port is installed.  A simple example is the following:
SNIP

It also breaks installworld when /usr/src and /usr/obj are NFS exported
read-only.

-- 
Joel
___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org


Re: svn commit: r254273 - in head: . include lib lib/libc/iconv lib/libiconv_compat lib/libkiconv share/mk sys/sys tools/build/mk

2013-08-18 Thread Jilles Tjoelker
On Sun, Aug 18, 2013 at 09:53:04PM +0200, Joel Dahl wrote:
 On Sun, Aug 18, 2013 at 12:34:30AM +0200, Dimitry Andric wrote:
  On Aug 13, 2013, at 09:15, Peter Wemm pe...@freebsd.org wrote:
   Author: peter
   Date: Tue Aug 13 07:15:01 2013
   New Revision: 254273
   URL: http://svnweb.freebsd.org/changeset/base/254273

   Log:
The iconv in libc did two things - implement the standard APIs, the GNU
extensions and also tried to be link time compatible with ports libiconv.
This splits that functionality and enables the parts that shouldn't
interfere with the port by default.

WITH_ICONV (now on by default) - adds iconv.h, iconv_open(3) etc.
WITH_LIBICONV_COMPAT (off by default) adds the libiconv_open etc API, 
   linker
symbols and even a stub libiconv.so.3 that are good enough to be able
to 'pkg delete -f libiconv' on a running system and reasonably expect it
to work.

I have tortured many machines over the last few days to try and reduce
the possibilities of foot-shooting as much as I can.  I've successfully
recompiled to enable and disable the libiconv_compat modes, ports that 
   use
libiconv alongside system iconv etc.  If you don't enable the
WITH_LIBICONV_COMPAT switch, they don't share symbol space.

This is an extension of behavior on other system.  iconv(3) is a standard
libc interface and libiconv port expects to be able to run alongside it 
   on
systems that have it.

  Unfortunately I expect this will break many ports, when the libiconv
  port is installed.  A simple example is the following:
 SNIP

 It also breaks installworld when /usr/src and /usr/obj are NFS exported
 read-only.

I think it has to do with share/i18n/csmapper and share/i18n/esdb using
directories as make targets. This apparently causes these files to be
rebuilt at 'make installworld' time, which is always bad but is only
detected when /usr/obj is read-only.

A hack that works is to enclose the four targets depending on ${SUBDIR}
in  .if !make(install)  .

Unfortunately, the Makefiles were written to depend on the directories
as make targets fairly deeply, so a real fix is harder.

-- 
Jilles Tjoelker
___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org


Re: svn commit: r254273 - in head: . include lib lib/libc/iconv lib/libiconv_compat lib/libkiconv share/mk sys/sys tools/build/mk

2013-08-18 Thread Peter Wemm
On 8/17/13 3:34 PM, Dimitry Andric wrote:
 On Aug 13, 2013, at 09:15, Peter Wemm pe...@freebsd.org wrote:
 Author: peter
 Date: Tue Aug 13 07:15:01 2013
 New Revision: 254273
 URL: http://svnweb.freebsd.org/changeset/base/254273

 Log:
  The iconv in libc did two things - implement the standard APIs, the GNU
  extensions and also tried to be link time compatible with ports libiconv.
  This splits that functionality and enables the parts that shouldn't
  interfere with the port by default.

  WITH_ICONV (now on by default) - adds iconv.h, iconv_open(3) etc.
  WITH_LIBICONV_COMPAT (off by default) adds the libiconv_open etc API, linker
  symbols and even a stub libiconv.so.3 that are good enough to be able
  to 'pkg delete -f libiconv' on a running system and reasonably expect it
  to work.

  I have tortured many machines over the last few days to try and reduce
  the possibilities of foot-shooting as much as I can.  I've successfully
  recompiled to enable and disable the libiconv_compat modes, ports that use
  libiconv alongside system iconv etc.  If you don't enable the
  WITH_LIBICONV_COMPAT switch, they don't share symbol space.

  This is an extension of behavior on other system.  iconv(3) is a standard
  libc interface and libiconv port expects to be able to run alongside it on
  systems that have it.
 
 Unfortunately I expect this will break many ports, when the libiconv
 port is installed.  A simple example is the following:
 
   #include iconv.h
 
   int main(void)
   {
 iconv_t ic = iconv_open(UTF-8, ISO-8859-1);
 iconv_close(ic);
 return 0;
   }
 
 If you compile this on a system after r254273 with -I/usr/local/include,
 and the libiconv port installed, it will result in:
 
   $ cc -I/usr/local/include iconv-test.c -o iconv-test
   /tmp/iconv-test-I1ltw1.o: In function `main':
   iconv-test.c:(.text+0x21): undefined reference to `libiconv_open'
   iconv-test.c:(.text+0x2f): undefined reference to `libiconv_close'
   cc: error: linker command failed with exit code 1 (use -v to see invocation)
 
 This is because libiconv's iconv.h does:
 
   #define iconv_open libiconv_open
   ...
   #define iconv_close libiconv_close
 
 and so on for most of its functions.

Yep, but since iconv.h is a standard include file, even on Linux systems.
 Autoconf/libtool/etc know this, that's why it typically compiles and links
like this:

cc -I/usr/local/include -L/usr/local/lib iconv-test.c -liconv

I'm sure there are exceptions though.

Random linux box (ubuntu fwiw):

peter@bit1:~$ readelf -a  /lib/x86_64-linux-gnu/libc-2.15.so  |grep iconv
  1554: 00220c045 FUNCGLOBAL DEFAULT   12 iconv_close@@GLIBC_2.2.5
  1745: 0021f10   418 FUNCGLOBAL DEFAULT   12 iconv@@GLIBC_2.2.5
  1764: 0021d00   523 FUNCGLOBAL DEFAULT   12 iconv_open@@GLIBC_2.2.5
peter@bit1:~$ grep '^extern' /usr/include/iconv.h
extern iconv_t iconv_open (__const char *, __const char *);
extern size_t iconv (iconv_t, char **__restrict,
extern int iconv_close (iconv_t);

If you mix includes and libraries like in your example, it would fail on
linux too.  However, linux tends to not add libiconv to the mix.

peter@bit1:~$ find / -mount -name 'libiconv*'
peter@bit1:~$ uname -a
Linux bit1 3.2.0-37-generic #58-Ubuntu SMP Thu Jan 24 15:28:10 UTC 2013
x86_64 x86_64 x86_64 GNU/Linux

The WITH_LIBICONV_COMPAT switch can be turned on - that adds the
libiconv_open etc aliases.  It was intended as a transition aid though - it
was intended to make 'pkg delete -f libiconv' on a running system keep working.

I compile my personal systems like this:

Index: Mk/Uses/iconv.mk
===
--- Mk/Uses/iconv.mk(revision 324679)
+++ Mk/Uses/iconv.mk(working copy)
@@ -16,6 +16,8 @@
 IGNORE=USES=iconv does not require args
 .endif

+.if !exists(/usr/include/iconv.h)
 LIB_DEPENDS+=  libiconv.so.3:${PORTSDIR}/converters/libiconv
+.endif

 .endif

.. and keep libiconv completely off them.  There's a couple of other ports
with it hard coded in, but this covers most of them.  eg: glib20, epic5,
unzip, php-iconv.

-- 
Peter Wemm - pe...@wemm.org; pe...@freebsd.org; pe...@yahoo-inc.com; KI6FJV
UTF-8: for when a ' just won\342\200\231t do.
brueffer ZFS must be the bacon of file systems.
brueffer everything's better with ZFS



signature.asc
Description: OpenPGP digital signature


Re: svn commit: r254273 - in head: . include lib lib/libc/iconv lib/libiconv_compat lib/libkiconv share/mk sys/sys tools/build/mk

2013-08-18 Thread Peter Wemm
On 8/18/13 3:42 PM, Jilles Tjoelker wrote:
 On Sun, Aug 18, 2013 at 09:53:04PM +0200, Joel Dahl wrote:
 On Sun, Aug 18, 2013 at 12:34:30AM +0200, Dimitry Andric wrote:
 On Aug 13, 2013, at 09:15, Peter Wemm pe...@freebsd.org wrote:
 Author: peter
 Date: Tue Aug 13 07:15:01 2013
 New Revision: 254273
 URL: http://svnweb.freebsd.org/changeset/base/254273
 
 Log:
  The iconv in libc did two things - implement the standard APIs, the GNU
  extensions and also tried to be link time compatible with ports libiconv.
  This splits that functionality and enables the parts that shouldn't
  interfere with the port by default.
 
  WITH_ICONV (now on by default) - adds iconv.h, iconv_open(3) etc.
  WITH_LIBICONV_COMPAT (off by default) adds the libiconv_open etc API, 
 linker
  symbols and even a stub libiconv.so.3 that are good enough to be able
  to 'pkg delete -f libiconv' on a running system and reasonably expect it
  to work.
 
  I have tortured many machines over the last few days to try and reduce
  the possibilities of foot-shooting as much as I can.  I've successfully
  recompiled to enable and disable the libiconv_compat modes, ports that use
  libiconv alongside system iconv etc.  If you don't enable the
  WITH_LIBICONV_COMPAT switch, they don't share symbol space.
 
  This is an extension of behavior on other system.  iconv(3) is a standard
  libc interface and libiconv port expects to be able to run alongside it on
  systems that have it.
 
 Unfortunately I expect this will break many ports, when the libiconv
 port is installed.  A simple example is the following:
 SNIP
 
 It also breaks installworld when /usr/src and /usr/obj are NFS exported
 read-only.
 
 I think it has to do with share/i18n/csmapper and share/i18n/esdb using
 directories as make targets. This apparently causes these files to be
 rebuilt at 'make installworld' time, which is always bad but is only
 detected when /usr/obj is read-only.
 
 A hack that works is to enclose the four targets depending on ${SUBDIR}
 in  .if !make(install)  .
 
 Unfortunately, the Makefiles were written to depend on the directories
 as make targets fairly deeply, so a real fix is harder.

I was looking at this yesterday, but was tied up with other things.  I'll
take a look at it today after getting a few other things done.  It should be
easy enough to replicate by changing /usr/obj to readonly on test systems.

-- 
Peter Wemm - pe...@wemm.org; pe...@freebsd.org; pe...@yahoo-inc.com; KI6FJV
UTF-8: for when a ' just won\342\200\231t do.
brueffer ZFS must be the bacon of file systems.
brueffer everything's better with ZFS



signature.asc
Description: OpenPGP digital signature


Re: svn commit: r254273 - in head: . include lib lib/libc/iconv lib/libiconv_compat lib/libkiconv share/mk sys/sys tools/build/mk

2013-08-17 Thread Dimitry Andric
On Aug 13, 2013, at 09:15, Peter Wemm pe...@freebsd.org wrote:
 Author: peter
 Date: Tue Aug 13 07:15:01 2013
 New Revision: 254273
 URL: http://svnweb.freebsd.org/changeset/base/254273
 
 Log:
  The iconv in libc did two things - implement the standard APIs, the GNU
  extensions and also tried to be link time compatible with ports libiconv.
  This splits that functionality and enables the parts that shouldn't
  interfere with the port by default.
 
  WITH_ICONV (now on by default) - adds iconv.h, iconv_open(3) etc.
  WITH_LIBICONV_COMPAT (off by default) adds the libiconv_open etc API, linker
  symbols and even a stub libiconv.so.3 that are good enough to be able
  to 'pkg delete -f libiconv' on a running system and reasonably expect it
  to work.
 
  I have tortured many machines over the last few days to try and reduce
  the possibilities of foot-shooting as much as I can.  I've successfully
  recompiled to enable and disable the libiconv_compat modes, ports that use
  libiconv alongside system iconv etc.  If you don't enable the
  WITH_LIBICONV_COMPAT switch, they don't share symbol space.
 
  This is an extension of behavior on other system.  iconv(3) is a standard
  libc interface and libiconv port expects to be able to run alongside it on
  systems that have it.

Unfortunately I expect this will break many ports, when the libiconv
port is installed.  A simple example is the following:

  #include iconv.h

  int main(void)
  {
iconv_t ic = iconv_open(UTF-8, ISO-8859-1);
iconv_close(ic);
return 0;
  }

If you compile this on a system after r254273 with -I/usr/local/include,
and the libiconv port installed, it will result in:

  $ cc -I/usr/local/include iconv-test.c -o iconv-test
  /tmp/iconv-test-I1ltw1.o: In function `main':
  iconv-test.c:(.text+0x21): undefined reference to `libiconv_open'
  iconv-test.c:(.text+0x2f): undefined reference to `libiconv_close'
  cc: error: linker command failed with exit code 1 (use -v to see invocation)

This is because libiconv's iconv.h does:

  #define iconv_open libiconv_open
  ...
  #define iconv_close libiconv_close

and so on for most of its functions.

-Dimitry

___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org


Re: svn commit: r254273 - in head: . include lib lib/libc/iconv lib/libiconv_compat lib/libkiconv share/mk sys/sys tools/build/mk

2013-08-13 Thread Gabor Kovesdan

Em 13-08-2013 09:15, Peter Wemm escreveu:

Author: peter
Date: Tue Aug 13 07:15:01 2013
New Revision: 254273
URL:http://svnweb.freebsd.org/changeset/base/254273

Log:
   The iconv in libc did two things - implement the standard APIs, the GNU
   extensions and also tried to be link time compatible with ports libiconv.
   This splits that functionality and enables the parts that shouldn't
   interfere with the port by default.
   
   WITH_ICONV (now on by default) - adds iconv.h, iconv_open(3) etc.

   WITH_LIBICONV_COMPAT (off by default) adds the libiconv_open etc API, linker
   symbols and even a stub libiconv.so.3 that are good enough to be able
   to 'pkg delete -f libiconv' on a running system and reasonably expect it
   to work.

Thank you!

Gabor
___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org