Discussion:
php 7.3 legacy architectures
Elan Ruusamäe
2018-09-24 17:54:20 UTC
Permalink
hi

can someone have look at i686 and x32 builds (-r dev-7.3 branch)


http://buildlogs.pld-linux.org//index.php?dist=th&arch=i686&ok=0&name=php&id=3a224baa-8fb9-499a-a8a3-8d03d0d83f41&action=tail

/usr/bin/ld: ext/standard/.libs/base64.o: unsupported non-PIC call to IFUNC `php_base64_encode'
/usr/bin/ld: ext/standard/.libs/http_fopen_wrapper.o: unsupported non-PIC call to IFUNC `php_base64_encode'
/usr/bin/ld: ext/standard/.libs/password.o: unsupported non-PIC call to IFUNC `php_base64_encode'
/usr/bin/ld: main/.libs/main.o: unsupported non-PIC call to IFUNC `php_base64_decode_ex'
/usr/bin/ld: main/streams/.libs/memory.o: unsupported non-PIC call to IFUNC `php_base64_decode_ex'
/usr/bin/ld: final link failed: nonrepresentable section on output
collect2: error: ld returned 1 exit status


http://buildlogs.pld-linux.org//index.php?dist=th&arch=x32&ok=0&name=php&id=3a224baa-8fb9-499a-a8a3-8d03d0d83f41&action=tail

/tmp/B.fBYAwg/BUILD/php-7.3.0RC1/Zend/zend_string.c: Assembler messages:
/tmp/B.fBYAwg/BUILD/php-7.3.0RC1/Zend/zend_string.c:407: Error:
incorrect register `%edx' used with `q' suffix
/tmp/B.fBYAwg/BUILD/php-7.3.0RC1/Zend/zend_string.c:408: Error:
incorrect register `%ecx' used with `q' suffix
/tmp/B.fBYAwg/BUILD/php-7.3.0RC1/Zend/zend_string.c:413: Error:
incorrect register `%ecx' used with `q' suffix
/tmp/B.fBYAwg/BUILD/php-7.3.0RC1/Zend/zend_string.c:418: Error:
incorrect register `%ecx' used with `q' suffix make: *** [Makefile:2281: Zend/zend_string.lo] Error 1
make: *** Waiting for unfinished jobs....
Jakub Bogusz
2018-09-24 18:54:08 UTC
Permalink
Post by Elan Ruusamäe
hi
can someone have look at i686 and x32 builds (-r dev-7.3 branch)
http://buildlogs.pld-linux.org//index.php?dist=th&arch=i686&ok=0&name=php&id=3a224baa-8fb9-499a-a8a3-8d03d0d83f41&action=tail
/usr/bin/ld: ext/standard/.libs/base64.o: unsupported non-PIC call to IFUNC
`php_base64_encode'
/usr/bin/ld: ext/standard/.libs/http_fopen_wrapper.o: unsupported non-PIC
call to IFUNC `php_base64_encode'
/usr/bin/ld: ext/standard/.libs/password.o: unsupported non-PIC call to
IFUNC `php_base64_encode'
/usr/bin/ld: main/.libs/main.o: unsupported non-PIC call to IFUNC `php_base64_decode_ex'
/usr/bin/ld: main/streams/.libs/memory.o: unsupported non-PIC call to IFUNC
`php_base64_decode_ex'
/usr/bin/ld: final link failed: nonrepresentable section on output
collect2: error: ld returned 1 exit status
Maybe this is some trace:

"checking whether to force non-PIC code in shared modules... yes"

x32 configure says "no" here.
Post by Elan Ruusamäe
http://buildlogs.pld-linux.org//index.php?dist=th&arch=x32&ok=0&name=php&id=3a224baa-8fb9-499a-a8a3-8d03d0d83f41&action=tail
incorrect register `%edx' used with `q' suffix
incorrect register `%ecx' used with `q' suffix
incorrect register `%ecx' used with `q' suffix
Zend/zend_string.lo] Error 1
make: *** Waiting for unfinished jobs....
Looks like wrong conditions in hand-written asm code.

Also I can see many warnings like:
Zend/zend_types.h:134:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
- to be verified if proper types are used during int/ptr arithmetic...
--
Jakub Bogusz http://qboosh.pl/
Elan Ruusamäe
2018-09-24 20:29:30 UTC
Permalink
Post by Jakub Bogusz
Post by Elan Ruusamäe
can someone have look at i686 and x32 builds (-r dev-7.3 branch)
http://buildlogs.pld-linux.org//index.php?dist=th&arch=i686&ok=0&name=php&id=3a224baa-8fb9-499a-a8a3-8d03d0d83f41&action=tail
/usr/bin/ld: ext/standard/.libs/base64.o: unsupported non-PIC call to IFUNC
`php_base64_encode'
/usr/bin/ld: ext/standard/.libs/http_fopen_wrapper.o: unsupported non-PIC
call to IFUNC `php_base64_encode'
/usr/bin/ld: ext/standard/.libs/password.o: unsupported non-PIC call to
IFUNC `php_base64_encode'
/usr/bin/ld: main/.libs/main.o: unsupported non-PIC call to IFUNC `php_base64_decode_ex'
/usr/bin/ld: main/streams/.libs/memory.o: unsupported non-PIC call to IFUNC
`php_base64_decode_ex'
/usr/bin/ld: final link failed: nonrepresentable section on output
collect2: error: ld returned 1 exit status
"checking whether to force non-PIC code in shared modules... yes"
x32 configure says "no" here.
it checks for $host_alias


yet that chunk has not changed since 2005

https://github.com/php/php-src/commit/931810629c140955104306fe5b9867e4d738421c


https://github.com/php/php-src/blob/php-7.3.0RC1/configure.ac#L297-L312




# Disable PIC mode by default where it is known to be safe to do so,

# to avoid the performance hit from the lost register

AC_MSG_CHECKING([whether to force non-PIC code in shared modules])

case $host_alias in

i?86-*-linux*|i?86-*-freebsd*)

if test "${with_pic+set}" != "set" || test "$with_pic" = "no"; then

with_pic=no

AC_MSG_RESULT(yes)

else

AC_MSG_RESULT(no)

fi

;;

*)

AC_MSG_RESULT(no)

;;

esac
glen
2018-10-03 14:58:06 UTC
Permalink
Post by Elan Ruusamäe
can someone have look at i686 and x32 builds (-r dev-7.3 branch)
i'm pretty ok to just to have ExclusiveArch: %{x8664} for 7.3 branch
--
glen
Continue reading on narkive:
Loading...