Bug #80585 [Opn->Fbk]: Compile error - iconv dose not support errno

From: Date: Mon, 08 Nov 2021 12:40:34 +0000
Subject: Bug #80585 [Opn->Fbk]: Compile error - iconv dose not support errno
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-237604@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=80585&edit=1

 ID:                 80585
 Updated by:         cmb@php.net
 Reported by:        tomas at rybarik dot com
 Summary:            Compile error - iconv dose not support errno
-Status:             Open
+Status:             Feedback
 Type:               Bug
 Package:            *Compile Issues
 Operating System:   OracleLinux 7
 PHP Version:        8.0.0
-Assigned To:        
+Assigned To:        cmb
 Block user comment: N
 Private report:     N

 New Comment:

It has been a deliberate change to no longer support iconv(3)
implementations which do not set errno as of PHP 8.0.0[1], because
the fallback code was flawed, and such iconv(3) implementations
are not POSIX conformant anyway.  Anyhow, this change will not be
reverted.

It is possible, though, that the detection of errno support is
flawed, or that something else with our configure scripts is not
quite right in this regard.  However, without further information
(such as the respective part of config.log), we can't do anything
about this.

[1] <https://www.php.net/manual/en/migration80.incompatible.php#migration80.incompatible.iconv>


Previous Comments:
------------------------------------------------------------------------
[2021-03-09 22:47:48] guillaume-php at outters dot eu

Tomas, could you please tell us what error is logged in the config.log?

As suggested by cmg, this is a problem of detection; but in my case (FreeBSD 10.2, with
"hand"-compiled GNU iconv 1.16 without pkgconfig), the detection program had no problem,
rather it was its compile env that lacked a -liconv.

So this could be circumvented by running an:
  export LDFLAGS="$LDFLAGS -liconv"
before the configure.

I _think_ that, like you, I had no problem compiling a PHP 7 in the same environment (so this detect
failure would be a configure regression); but I cannot be certain.

------------------------------------------------------------------------
[2021-01-18 08:49:15] shimozawa dot hiroki at misou dot co dot jp

I am also getting the same error.
Will it be fixed in the next version?

Reproduction procedure.

~~~
# cat /etc/redhat-release 
CentOS Linux release 7.3.1611 (Core) 

# cd /usr/local/src/
# wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz
# tar zxvf ./libiconv-1.16.tar.gz
# cd libiconv-1.16
# ./configure --prefix=/usr
# make & make install

# iconv --version
iconv (GNU libiconv 1.16)
Copyright (C) 2000-2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
...


# cd /usr/local/src/php-8.0.1
# ./configure \
... \
... \
--with-iconv

...
...
checking for iconv support... yes
checking for iconv... yes
checking if iconv is glibc's... yes
checking if iconv supports errno... no
configure: error: iconv does not support errno

------------------------------------------------------------------------
[2021-01-05 10:28:52] cmb@php.net

As of PHP 8.0.0, iconv implementation which do not support errno
(i.e. non POSIX conforming implementations) are no longer
supported.  Either you glic iconv does not support errno, or that
support is wrongly detected.

Consider to install and use libiconv.

------------------------------------------------------------------------
[2021-01-04 15:06:20] tomas at rybarik dot com

Description:
------------
I'm unable to compile PHP 8.0.0 with enabled iconv.
This is output from configure command:
checking for iconv support... yes
checking for iconv... yes
checking if iconv is glibc's... yes
checking if iconv supports errno... no
configure: error: iconv does not support errno

I tried compile PHP 7.4.13 with the same version of iconv (1.16), there everything is OK.
checking for iconv support... yes
checking for iconv... yes
checking if iconv is glibc's... yes
checking if iconv supports errno... yes
checking if iconv supports //IGNORE... no




------------------------------------------------------------------------



--
Edit this bug report at https://bugs.php.net/bug.php?id=80585&edit=1


Thread (9 messages)

« previous php.bugs (#237604) next »