[MacPorts] #51709: nss @3.23 does not build on PPC Tiger, Mac OS X 10.4.11 because wrong types are used?
MacPorts
noreply at macports.org
Sat Jun 25 01:52:01 PDT 2016
#51709: nss @3.23 does not build on PPC Tiger, Mac OS X 10.4.11 because wrong types
are used?
-----------------------------+--------------------------------
Reporter: Peter_Dyballa@… | Owner: macports-tickets@…
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version: 2.3.4
Keywords: | Port: nss
-----------------------------+--------------------------------
This is the error:
{{{
:info:build /opt/local/bin/clang-mp-3.3 -arch ppc -o
Output.OBJD/Darwin_SINGLE_SHLIB/pqg.o -c -Os -fPIC -Dppc -fno-common -pipe
-DDARWIN -DHAVE_STRERROR -DHAVE_BSD_FLOCK -Wall -Qunused-arguments -Wno-
parentheses-equality -Wno-array-bounds -Werror -DXP_UNIX
-DSHLIB_SUFFIX=\"dylib\" -DSHLIB_PREFIX=\"lib\" -DSHLIB_VERSION=\"3\"
-DSOFTOKEN_SHLIB_VERSION=\"3\" -DRIJNDAEL_INCLUDE_TABLES -UDEBUG -DNDEBUG
-DUSE_UTIL_DIRECTLY -DNO_NSPR_10_SUPPORT
-DSSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES -DMP_API_COMPATIBLE
-I/opt/local/include/nspr -I../../../dist/Output.OBJD/include
-I../../../dist/public/nss -I../../../dist/private/nss -Impi -Iecl pqg.c
:info:build pqg.c:339:16: error: comparison of constant
18446744073709551615 with expression of type 'unsigned long' is always
true [-Werror,-Wtautological-constant-out-of-range-compare]
:info:build if (addend < MP_DIGIT_MAX) {
:info:build ~~~~~~ ^ ~~~~~~~~~~~~
:info:build 1 error generated.
:info:build make[3]: *** [Output.OBJD/Darwin_SINGLE_SHLIB/pqg.o] Error 1
:info:build make[3]: Leaving directory
`/opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_net_nss/nss/work/nss-3.23/nss/lib/freebl'
:info:build make[2]: *** [libs] Error 2
}}}
The definition of MP_DIGIT_MAX comes from
{{{
# 81 "mpi/mpi.h"
typedef unsigned long long mp_digit;
#define MP_DIGIT_MAX MP_ULONG_LONG_MAX
}}}
i.e.
`/opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_net_nss/nss/work/nss-3.23/nss/lib/freebl/mpi/mpi.h`,
addend is declared as `unsigned long addend`. So giving it the correct
type should correct the issue:
{{{
/opt/local/bin/clang-mp-3.3 -arch ppc -o
Output.OBJD/Darwin_SINGLE_SHLIB/pqg.o -c -Os -fPIC -Dppc -fno-common -pipe
-DDARWIN -DHAVE_STRERROR -DHAVE_BSD_FLOCK -Wall -Qunused-arguments -Wno-
parentheses-equality -Wno-array-bounds -Werror -DXP_UNIX
-DSHLIB_SUFFIX=\"dylib\" -DSHLIB_PREFIX=\"lib\" -DSHLIB_VERSION=\"3\"
-DSOFTOKEN_SHLIB_VERSION=\"3\" -DRIJNDAEL_INCLUDE_TABLES -UDEBUG -DNDEBUG
-DUSE_UTIL_DIRECTLY -DNO_NSPR_10_SUPPORT
-DSSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES -DMP_API_COMPATIBLE
-I/opt/local/include/nspr -I../../../dist/Output.OBJD/include
-I../../../dist/public/nss -I../../../dist/private/nss -Impi -Iecl pqg.c
}}}
(The patch file is uploaded.) This fix expoeses a new fault:
{{{
/opt/local/bin/clang-mp-3.3 -arch ppc -o
Output.OBJD/Darwin_SINGLE_SHLIB/ecl_gf.o -c -Os -fPIC -Dppc -fno-common
-pipe -DDARWIN -DHAVE_STRERROR -DHAVE_BSD_FLOCK -Wall -Qunused-arguments
-Wno-parentheses-equality -Wno-array-bounds -Werror -DXP_UNIX
-DSHLIB_SUFFIX=\"dylib\" -DSHLIB_PREFIX=\"lib\" -DSHLIB_VERSION=\"3\"
-DSOFTOKEN_SHLIB_VERSION=\"3\" -DRIJNDAEL_INCLUDE_TABLES -UDEBUG -DNDEBUG
-DUSE_UTIL_DIRECTLY -DNO_NSPR_10_SUPPORT
-DSSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES -DMP_API_COMPATIBLE
-I/opt/local/include/nspr -I../../../dist/Output.OBJD/include
-I../../../dist/public/nss -I../../../dist/private/nss -Impi -Iecl
ecl/ecl_gf.c
/opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_net_nss/nss/work/.tmp
/ecl_gf-Ll1z35.s:852:Parameter error: r0 not allowed for parameter %lu
(code as 0 not r0) (parameter 2)
/opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_net_nss/nss/work/.tmp
/ecl_gf-Ll1z35.s:906:Parameter error: r0 not allowed for parameter %lu
(code as 0 not r0) (parameter 2)
clang: error: assembler (via gcc) command failed with exit code 1 (use -v
to see invocation)
make[3]: *** [Output.OBJD/Darwin_SINGLE_SHLIB/ecl_gf.o] Error 1
make[3]: Leaving directory
`/opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_net_nss/nss/work/nss-3.23/nss/lib/freebl'
}}}
Assembler is beyond my scope. Maybe a bug in Clang?
--
Ticket URL: <https://trac.macports.org/ticket/51709>
MacPorts <https://www.macports.org/>
Ports system for OS X
More information about the macports-tickets
mailing list