NLnetLabs / nsd

The NLnet Labs Name Server Daemon (NSD) is an authoritative, RFC compliant DNS nameserver.
https://nlnetlabs.nl/nsd
BSD 3-Clause "New" or "Revised" License
449 stars 102 forks source link

Solaris x86 build fails #372

Closed idgn23 closed 1 month ago

idgn23 commented 1 month ago

I have tested NSD only on Solaris SPARC and noticed now that simdzone fails von Solaris x86.

Studio: ==> Running make in work/solaris10-i386/build-isa-pentium_pro/nsd-4.10.1 cd work/solaris10-i386/build-isa-pentium_pro/nsd-4.10.1 && /usr/bin/env -i HOME="/home/ihsan" PATH="/home/ihsan/opencsw/nsd/trunk/work/solaris10-i386/install-isa-pentium_pro/opt/csw/bin:/home/ihsan/opencsw/nsd/trunk/work/solaris10-i386/install-isa-pentium_pro/opt/csw/bin:/home/ihsan/opencsw/nsd/trunk/work/solaris10-i386/install-isa-pentium_pro/opt/csw/sbin:/home/ihsan/opencsw/nsd/trunk/work/solaris10-i386/install-isa-pentium_pro/opt/csw/sbin:/opt/csw/bin:/opt/csw/bin:/opt/csw/sbin:/opt/csw/sbin:/opt/developerstudio12.6/bin:/home/ihsan/opencsw/.buildsys/v2/gar/bin:/usr/bin:/usr/sbin:/usr/java/bin:/usr/ccs/bin:/usr/openwin/bin" LC_ALL="C" prefix="/opt/csw" exec_prefix="/opt/csw" bindir="/opt/csw/bin" sbindir="/opt/csw/sbin" libexecdir="/opt/csw/libexec" datadir="/opt/csw/share" sysconfdir="/etc/opt/csw" sharedstatedir="/opt/csw/share" localstatedir="/var/opt/csw" libdir="/opt/csw/lib" infodir="/opt/csw/share/info" lispdir="/opt/csw/share/emacs/site-lisp" includedir="/opt/csw/include" mandir="/opt/csw/share/man" docdir="/opt/csw/share/doc" sourcedir="/opt/csw/src" CPPFLAGS="-I/opt/csw/include" CFLAGS="-xO3 -m32 -xarch=pentium_pro -xchip=pentium_pro" CXXFLAGS="-xO3 -m32 -xarch=pentium_pro -xchip=pentium_pro" LDFLAGS="-m32 -xarch=pentium_pro -xchip=pentium_pro -L/opt/csw/lib" FFLAGS="-xO3 -m32 -xarch=pentium_pro -xchip=pentium_pro" FCFLAGS="-xO3 -m32 -xarch=pentium_pro -xchip=pentium_pro" F77="" FC="/opt/developerstudio12.6/bin/f95" ASFLAGS="" OPTFLAGS="-xO3 -m32 -xarch=pentium_pro -xchip=pentium_pro" CC="/opt/developerstudio12.6/bin/cc" CXX="/opt/developerstudio12.6/bin/CC" CC_HOME="/opt/developerstudio12.6" CC_VERSION="" CXX_VERSION="Studio 12.6 Sun C++ 5.15 SunOS_i386 Patch 152716-04 2019/08/06" GARCH="i386" GAROSREL="5.10" GARPACKAGE="trunk" LD_OPTIONS="-R/opt/csw/lib/\$ISALIST -R/opt/csw/lib -M /home/ihsan/opencsw/.buildsys/v2/gar/lib/map.solaris10 -B direct -z ignore" MAKEFLAGS= gmake -I/home/ihsan/opencsw/.buildsys/v2 -C . gmake: Entering directory '/home/ihsan/opencsw/nsd/trunk/work/solaris10-i386/build-isa-pentium_pro/nsd-4.10.1' gmake -C simdzone gmake[1]: Entering directory '/home/ihsan/opencsw/nsd/trunk/work/solaris10-i386/build-isa-pentium_pro/nsd-4.10.1/simdzone' /opt/developerstudio12.6/bin/cc -xMMD -I/opt/csw/include -I./include -I./src -I. -xO3 -m32 -xarch=pentium_pro -xchip=pentium_pro -o src/zone.o -c ./src/zone.c /opt/developerstudio12.6/bin/cc -xMMD -I/opt/csw/include -I./include -I./src -I. -xO3 -m32 -xarch=pentium_pro -xchip=pentium_pro -o src/fallback/parser.o -c ./src/fallback/parser.c /opt/developerstudio12.6/bin/cc -xMMD -I/opt/csw/include -I./include -I./src -I. -xO3 -m32 -xarch=pentium_pro -xchip=pentium_pro -march=westmere -o src/westmere/parser.o -c ./src/westmere/parser.c "./src/westmere/bits.h", line 26: [write_indexes]:ube: error: Intrinsic _mm_popcnt_u64 is valid in 64-bit mode only "./src/westmere/bits.h", line 26: [write_indexes]:ube: error: Intrinsic _mm_popcnt_u64 is valid in 64-bit mode only "./src/westmere/bits.h", line 26: [write_indexes]:ube: error: Intrinsic _mm_popcnt_u64 is valid in 64-bit mode only "./src/westmere/bits.h", line 26: [write_indexes]:ube: error: Intrinsic _mm_popcnt_u64 is valid in 64-bit mode only "./src/westmere/bits.h", line 26: [write_indexes]:ube: error: Intrinsic _mm_popcnt_u64 is valid in 64-bit mode only "./src/westmere/bits.h", line 26: [write_indexes]:ube: error: Intrinsic _mm_popcnt_u64 is valid in 64-bit mode only "./src/westmere/bits.h", line 26: [write_indexes]:ube: error: Intrinsic _mm_popcnt_u64 is valid in 64-bit mode only "./src/westmere/bits.h", line 26: [write_indexes]:ube: error: Intrinsic _mm_popcnt_u64 is valid in 64-bit mode only cc: ube failed for ./src/westmere/parser.c gmake[1]: *** [Makefile:67: src/westmere/parser.o] Error 2 gmake[1]: Leaving directory '/home/ihsan/opencsw/nsd/trunk/work/solaris10-i386/build-isa-pentium_pro/nsd-4.10.1/simdzone' gmake: *** [Makefile:166: simdzone/libzone.a] Error 2 gmake: Leaving directory '/home/ihsan/opencsw/nsd/trunk/work/solaris10-i386/build-isa-pentium_pro/nsd-4.10.1' gmake[1]: *** [/home/ihsan/opencsw/.buildsys/v2/gar//gar.lib.mk:908: build-work/solaris10-i386/build-isa-pentium_pro/nsd-4.10.1/Makefile] Error 2 gmake[1]: Leaving directory '/home/ihsan/opencsw/nsd/trunk' gmake: *** [gar/gar.mk:202: merge-isa-pentium_pro] Error 2

GCC: ==> Running make in work/solaris10-i386/build-isa-pentium_pro/nsd-4.10.1 cd work/solaris10-i386/build-isa-pentium_pro/nsd-4.10.1 && /usr/bin/env -i HOME="/home/ihsan" PATH="/home/ihsan/opencsw/nsd/trunk/work/solaris10-i386/install-isa-pentium_pro/opt/csw/bin:/home/ihsan/opencsw/nsd/trunk/work/solaris10-i386/install-isa-pentium_pro/opt/csw/bin:/home/ihsan/opencsw/nsd/trunk/work/solaris10-i386/install-isa-pentium_pro/opt/csw/sbin:/home/ihsan/opencsw/nsd/trunk/work/solaris10-i386/install-isa-pentium_pro/opt/csw/sbin:/opt/csw/bin:/opt/csw/bin:/opt/csw/sbin:/opt/csw/sbin:/opt/csw/bin:/home/ihsan/opencsw/.buildsys/v2/gar/bin:/usr/bin:/usr/sbin:/usr/java/bin:/usr/ccs/bin:/usr/openwin/bin" LC_ALL="C" prefix="/opt/csw" exec_prefix="/opt/csw" bindir="/opt/csw/bin" sbindir="/opt/csw/sbin" libexecdir="/opt/csw/libexec" datadir="/opt/csw/share" sysconfdir="/etc/opt/csw" sharedstatedir="/opt/csw/share" localstatedir="/var/opt/csw" libdir="/opt/csw/lib" infodir="/opt/csw/share/info" lispdir="/opt/csw/share/emacs/site-lisp" includedir="/opt/csw/include" mandir="/opt/csw/share/man" docdir="/opt/csw/share/doc" sourcedir="/opt/csw/src" CPPFLAGS="-I/opt/csw/include" CFLAGS="-O2 -pipe -fno-omit-frame-pointer -m32 -march=pentiumpro" CXXFLAGS="-O2 -pipe -fno-omit-frame-pointer -m32 -march=pentiumpro" LDFLAGS="-m32 -march=pentiumpro -L/opt/csw/lib" FFLAGS="-O2 -pipe -fno-omit-frame-pointer -m32 -march=pentiumpro" FCFLAGS="-O2 -pipe -fno-omit-frame-pointer -m32 -march=pentiumpro" F77="/opt/csw/bin/gfortran-5.5" FC="/opt/csw/bin/gfortran-5.5" ASFLAGS="" OPTFLAGS="-O2 -pipe -fno-omit-frame-pointer -m32 -march=pentiumpro" CC="/opt/csw/bin/gcc-5.5" CXX="/opt/csw/bin/g++-5.5" CC_HOME="/opt/csw" CC_VERSION="gcc version 5.5.0 (GCC) " CXX_VERSION="gcc version 5.5.0 (GCC) " GARCH="i386" GAROSREL="5.10" GARPACKAGE="trunk" LD_OPTIONS="-R/opt/csw/lib/\$ISALIST -R/opt/csw/lib -M /home/ihsan/opencsw/.buildsys/v2/gar/lib/map.solaris10 -B direct -z ignore" MAKEFLAGS= gmake -I/home/ihsan/opencsw/.buildsys/v2 -C . gmake: Entering directory '/home/ihsan/opencsw/nsd/trunk/work/solaris10-i386/build-isa-pentium_pro/nsd-4.10.1' gmake -C simdzone gmake[1]: Entering directory '/home/ihsan/opencsw/nsd/trunk/work/solaris10-i386/build-isa-pentium_pro/nsd-4.10.1/simdzone' /opt/csw/bin/gcc-5.5 -MMD -MP -I/opt/csw/include -I./include -I./src -I. -O2 -pipe -fno-omit-frame-pointer -m32 -march=pentiumpro -o src/zone.o -c ./src/zone.c /opt/csw/bin/gcc-5.5 -MMD -MP -I/opt/csw/include -I./include -I./src -I. -O2 -pipe -fno-omit-frame-pointer -m32 -march=pentiumpro -o src/fallback/parser.o -c ./src/fallback/parser.c /opt/csw/bin/gcc-5.5 -MMD -MP -I/opt/csw/include -I./include -I./src -I. -O2 -pipe -fno-omit-frame-pointer -m32 -march=pentiumpro -march=westmere -o src/westmere/parser.o -c ./src/westmere/parser.c In file included from ./src/westmere/parser.c:14:0: ./src/westmere/bits.h: In function 'count_ones': ./src/westmere/bits.h:26:20: warning: implicit declaration of function '_mm_popcnt_u64' [-Wimplicit-function-declaration] return (uint64_t)_mm_popcnt_u64(input_num); ^ ./src/westmere/bits.h: In function 'prefix_xor': ./src/westmere/bits.h:62:20: warning: implicit declaration of function '_mm_cvtsi128_si64' [-Wimplicit-function-declaration] return (uint64_t)_mm_cvtsi128_si64(result); ^ In file included from ./src/westmere/parser.c:19:0: ./src/westmere/time.h: In function 'sse_parse_time': ./src/westmere/time.h:92:27: warning: implicit declaration of function '_mm_extract_epi64' [-Wimplicit-function-declaration] uint64_t hi = (uint64_t)_mm_extract_epi64(v, 1); ^ {standard input}: Assembler messages: {standard input}:11503: Error: invalid instruction suffix forbsf' {standard input}:11513: Error: invalid instruction suffix for bsf' {standard input}:11606: Error: invalid instruction suffix forbsf' {standard input}:11615: Error: invalid instruction suffix for bsf' {standard input}:11666: Error: invalid instruction suffix forbsf' {standard input}:11677: Error: invalid instruction suffix for bsf' {standard input}:11737: Error: invalid instruction suffix forbsf' {standard input}:11749: Error: invalid instruction suffix for bsf' {standard input}:11870: Error: invalid instruction suffix forbsf' {standard input}:12926: Error: invalid instruction suffix for bsf' {standard input}:12937: Error: invalid instruction suffix forbsf' {standard input}:12983: Error: invalid instruction suffix for bsf' {standard input}:12992: Error: invalid instruction suffix forbsf' {standard input}:13042: Error: invalid instruction suffix for bsf' {standard input}:13053: Error: invalid instruction suffix forbsf' {standard input}:13140: Error: invalid instruction suffix for bsf' {standard input}:13154: Error: invalid instruction suffix forbsf' {standard input}:13275: Error: invalid instruction suffix for bsf' {standard input}:15466: Error: invalid instruction suffix forbsf' {standard input}:15476: Error: invalid instruction suffix for bsf' {standard input}:15525: Error: invalid instruction suffix forbsf' {standard input}:15534: Error: invalid instruction suffix for bsf' {standard input}:15696: Error: invalid instruction suffix forbsf' {standard input}:15707: Error: invalid instruction suffix for bsf' {standard input}:15767: Error: invalid instruction suffix forbsf' {standard input}:15779: Error: invalid instruction suffix for bsf' {standard input}:15900: Error: invalid instruction suffix forbsf' {standard input}:16854: Error: invalid instruction suffix for bsf' {standard input}:16865: Error: invalid instruction suffix forbsf' {standard input}:16911: Error: invalid instruction suffix for bsf' {standard input}:16920: Error: invalid instruction suffix forbsf' {standard input}:16970: Error: invalid instruction suffix for bsf' {standard input}:16981: Error: invalid instruction suffix forbsf' {standard input}:17091: Error: invalid instruction suffix for bsf' {standard input}:17105: Error: invalid instruction suffix forbsf' {standard input}:17275: Error: invalid instruction suffix for bsf' {standard input}:24887: Error: invalid instruction suffix forbsr' {standard input}:26167: Error: invalid instruction suffix for bsf' {standard input}:26409: Error: invalid instruction suffix forbsr' {standard input}:28062: Error: invalid instruction suffix for bsf' {standard input}:28087: Error: invalid instruction suffix forbsf' {standard input}:28234: Error: invalid instruction suffix for bsf' {standard input}:28280: Error: invalid instruction suffix forbsf' {standard input}:29503: Error: invalid instruction suffix for bsf' {standard input}:29524: Error: invalid instruction suffix forbsf' {standard input}:29728: Error: invalid instruction suffix for bsf' {standard input}:29772: Error: invalid instruction suffix forbsf' {standard input}:34508: Error: invalid instruction suffix for bsf' {standard input}:34518: Error: invalid instruction suffix forbsf' {standard input}:34567: Error: invalid instruction suffix for bsf' {standard input}:34576: Error: invalid instruction suffix forbsf' {standard input}:34739: Error: invalid instruction suffix for bsf' {standard input}:34750: Error: invalid instruction suffix forbsf' {standard input}:34810: Error: invalid instruction suffix for bsf' {standard input}:34822: Error: invalid instruction suffix forbsf' {standard input}:34943: Error: invalid instruction suffix for bsf' {standard input}:35901: Error: invalid instruction suffix forbsf' {standard input}:35912: Error: invalid instruction suffix for bsf' {standard input}:35958: Error: invalid instruction suffix forbsf' {standard input}:35967: Error: invalid instruction suffix for bsf' {standard input}:36017: Error: invalid instruction suffix forbsf' {standard input}:36028: Error: invalid instruction suffix for bsf' {standard input}:36126: Error: invalid instruction suffix forbsf' {standard input}:36140: Error: invalid instruction suffix for bsf' {standard input}:36269: Error: invalid instruction suffix forbsf' {standard input}:37134: Error: invalid instruction suffix for bsf' {standard input}:37144: Error: invalid instruction suffix forbsf' {standard input}:37193: Error: invalid instruction suffix for bsf' {standard input}:37202: Error: invalid instruction suffix forbsf' {standard input}:37368: Error: invalid instruction suffix for bsf' {standard input}:37379: Error: invalid instruction suffix forbsf' {standard input}:37439: Error: invalid instruction suffix for bsf' {standard input}:37451: Error: invalid instruction suffix forbsf' {standard input}:37572: Error: invalid instruction suffix for bsf' {standard input}:38547: Error: invalid instruction suffix forbsf' {standard input}:38558: Error: invalid instruction suffix for bsf' {standard input}:38604: Error: invalid instruction suffix forbsf' {standard input}:38613: Error: invalid instruction suffix for bsf' {standard input}:38663: Error: invalid instruction suffix forbsf' {standard input}:38674: Error: invalid instruction suffix for bsf' {standard input}:38748: Error: invalid instruction suffix forbsf' {standard input}:38762: Error: invalid instruction suffix for bsf' {standard input}:38891: Error: invalid instruction suffix forbsf' {standard input}:39758: Error: invalid instruction suffix for bsf' {standard input}:39768: Error: invalid instruction suffix forbsf' {standard input}:39817: Error: invalid instruction suffix for bsf' {standard input}:39826: Error: invalid instruction suffix forbsf' {standard input}:39879: Error: invalid instruction suffix for bsf' {standard input}:39890: Error: invalid instruction suffix forbsf' {standard input}:40036: Error: invalid instruction suffix for bsf' {standard input}:40048: Error: invalid instruction suffix forbsf' {standard input}:40169: Error: invalid instruction suffix for bsf' {standard input}:41123: Error: invalid instruction suffix forbsf' {standard input}:41134: Error: invalid instruction suffix for bsf' {standard input}:41180: Error: invalid instruction suffix forbsf' {standard input}:41189: Error: invalid instruction suffix for bsf' {standard input}:41239: Error: invalid instruction suffix forbsf' {standard input}:41250: Error: invalid instruction suffix for bsf' {standard input}:41350: Error: invalid instruction suffix forbsf' {standard input}:41367: Error: invalid instruction suffix for bsf' {standard input}:41485: Error: invalid instruction suffix forbsf' {standard input}:46771: Error: invalid instruction suffix for bsf' {standard input}:46821: Error: invalid instruction suffix forbsf' {standard input}:47630: Error: invalid instruction suffix for bsf' {standard input}:47654: Error: invalid instruction suffix forbsf' {standard input}:48862: Error: invalid instruction suffix for bsf' {standard input}:48882: Error: invalid instruction suffix forbsf' {standard input}:49195: Error: invalid instruction suffix for bsf' {standard input}:49240: Error: invalid instruction suffix forbsf' {standard input}:49706: Error: invalid instruction suffix for bsf' {standard input}:49729: Error: invalid instruction suffix forbsf' {standard input}:49925: Error: invalid instruction suffix for bsf' {standard input}:49977: Error: invalid instruction suffix forbsf' {standard input}:51397: Error: invalid instruction suffix for bsf' {standard input}:51418: Error: invalid instruction suffix forbsf' {standard input}:51624: Error: invalid instruction suffix for bsf' {standard input}:51662: Error: invalid instruction suffix forbsf' {standard input}:52230: Error: invalid instruction suffix for bsf' {standard input}:52251: Error: invalid instruction suffix forbsf' {standard input}:52456: Error: invalid instruction suffix for bsf' {standard input}:52501: Error: invalid instruction suffix forbsf' {standard input}:53604: Error: invalid instruction suffix for bsf' {standard input}:53625: Error: invalid instruction suffix forbsf' {standard input}:53841: Error: invalid instruction suffix for bsf' {standard input}:53885: Error: invalid instruction suffix forbsf' {standard input}:54621: Error: invalid instruction suffix for bsf' {standard input}:54642: Error: invalid instruction suffix forbsf' {standard input}:54677: Error: invalid instruction suffix for bsf' {standard input}:54722: Error: invalid instruction suffix forbsf' {standard input}:56750: Error: invalid instruction suffix for bsf' {standard input}:56771: Error: invalid instruction suffix forbsf' {standard input}:56981: Error: invalid instruction suffix for bsf' {standard input}:57019: Error: invalid instruction suffix forbsf' {standard input}:57500: Error: invalid instruction suffix for bsf' {standard input}:57521: Error: invalid instruction suffix forbsf' {standard input}:57556: Error: invalid instruction suffix for bsf' {standard input}:57594: Error: invalid instruction suffix forbsf' {standard input}:60009: Error: invalid instruction suffix for bsf' {standard input}:60054: Error: invalid instruction suffix forbsf' {standard input}:60396: Error: invalid instruction suffix for bsf' {standard input}:60418: Error: invalid instruction suffix forbsf' {standard input}:61087: Error: invalid instruction suffix for bsf' {standard input}:61133: Error: invalid instruction suffix forbsf' {standard input}:61426: Error: invalid instruction suffix for bsf' {standard input}:61455: Error: invalid instruction suffix forbsf' {standard input}:61702: Error: invalid instruction suffix for bsf' {standard input}:61747: Error: invalid instruction suffix forbsf' {standard input}:61976: Error: invalid instruction suffix for bsf' {standard input}:62000: Error: invalid instruction suffix forbsf' {standard input}:62622: Error: invalid instruction suffix for bsf' {standard input}:62643: Error: invalid instruction suffix forbsf' {standard input}:62904: Error: invalid instruction suffix for bsf' {standard input}:62941: Error: invalid instruction suffix forbsf' {standard input}:64173: Error: invalid instruction suffix for bsf' {standard input}:64194: Error: invalid instruction suffix forbsf' {standard input}:64445: Error: invalid instruction suffix for bsf' {standard input}:64489: Error: invalid instruction suffix forbsf' {standard input}:66106: Error: invalid instruction suffix for bsf' {standard input}:66128: Error: invalid instruction suffix forbsf' {standard input}:66320: Error: invalid instruction suffix for bsf' {standard input}:66365: Error: invalid instruction suffix forbsf' {standard input}:68132: Error: invalid instruction suffix for bsf' {standard input}:68153: Error: invalid instruction suffix forbsf' {standard input}:68367: Error: invalid instruction suffix for bsf' {standard input}:68418: Error: invalid instruction suffix forbsf' {standard input}:69744: Error: invalid instruction suffix for bsf' {standard input}:69765: Error: invalid instruction suffix forbsf' {standard input}:70010: Error: invalid instruction suffix for bsf' {standard input}:70061: Error: invalid instruction suffix forbsf' {standard input}:70250: Error: invalid instruction suffix for bsr' {standard input}:71184: Error: invalid instruction suffix forbsf' {standard input}:71227: Error: invalid instruction suffix for bsf' {standard input}:72891: Error: invalid instruction suffix forbsf' {standard input}:72916: Error: invalid instruction suffix for bsf' gmake[1]: *** [Makefile:67: src/westmere/parser.o] Error 1 gmake[1]: Leaving directory '/home/ihsan/opencsw/nsd/trunk/work/solaris10-i386/build-isa-pentium_pro/nsd-4.10.1/simdzone' gmake: *** [Makefile:166: simdzone/libzone.a] Error 2 gmake: Leaving directory '/home/ihsan/opencsw/nsd/trunk/work/solaris10-i386/build-isa-pentium_pro/nsd-4.10.1' gmake[1]: *** [/home/ihsan/opencsw/.buildsys/v2/gar//gar.lib.mk:908: build-work/solaris10-i386/build-isa-pentium_pro/nsd-4.10.1/Makefile] Error 2 gmake[1]: Leaving directory '/home/ihsan/opencsw/nsd/trunk' gmake: *** [gar/gar.mk:202: merge-isa-pentium_pro] Error 2

k0ekk0ek commented 1 month ago

Hi @idgn23! I think the problem is: CFLAGS="-xO3 -m32 -xarch=pentium_pro -xchip=pentium_pro". We set -march=westmere and -march=haswell in configure to test whether the architecture supports Westmere and Haswell architectures respectively. Clearly, that check passes, or the westmere kernel wouldn't be compiled. You can pass --disable-westmere and --disable-haswell to disable the parser kernels as a workaround. The real question is: why don't the flags take precedence in configure? The order is the same and we literally check for _mm_popcnt_u64 in the configure script. Can you try changing the order of CFLAGS in configure? Also, please provide the output of the configure run.

idgn23 commented 1 month ago

Hi

Bellow the configure output with the studio compiler. I have specified --disable-westmere and --disable-haswell.

==> Running configure in work/solaris10-i386/build-isa-pentium_pro/nsd-4.10.1 cd work/solaris10-i386/build-isa-pentium_pro/nsd-4.10.1 && mkdir -p . && cd . && /usr/bin/env -i HOME="/home/ihsan" PATH="/home/ihsan/opencsw/nsd/trunk/work/solaris10-i386/install-isa-pentium_pro/opt/csw/bin:/home/ihsan/opencsw/nsd/trunk/work/solaris10-i386/install-isa-pentium_pro/opt/csw/bin:/home/ihsan/opencsw/nsd/trunk/work/solaris10-i386/install-isa-pentium_pro/opt/csw/sbin:/home/ihsan/opencsw/nsd/trunk/work/solaris10-i386/install-isa-pentium_pro/opt/csw/sbin:/opt/csw/bin:/opt/csw/bin:/opt/csw/sbin:/opt/csw/sbin:/opt/developerstudio12.6/bin:/home/ihsan/opencsw/.buildsys/v2/gar/bin:/usr/bin:/usr/sbin:/usr/java/bin:/usr/ccs/bin:/usr/openwin/bin" LC_ALL="C" prefix="/opt/csw" exec_prefix="/opt/csw" bindir="/opt/csw/bin" sbindir="/opt/csw/sbin" libexecdir="/opt/csw/libexec" datadir="/opt/csw/share" sysconfdir="/etc/opt/csw" sharedstatedir="/opt/csw/share" localstatedir="/var/opt/csw" libdir="/opt/csw/lib" infodir="/opt/csw/share/info" lispdir="/opt/csw/share/emacs/site-lisp" includedir="/opt/csw/include" mandir="/opt/csw/share/man" docdir="/opt/csw/share/doc" sourcedir="/opt/csw/src" CPPFLAGS="-I/opt/csw/include" CFLAGS="-xO3 -m32 -xarch=pentium_pro -xchip=pentium_pro" CXXFLAGS="-xO3 -m32 -xarch=pentium_pro -xchip=pentium_pro" LDFLAGS="-m32 -xarch=pentium_pro -xchip=pentium_pro -L/opt/csw/lib" FFLAGS="-xO3 -m32 -xarch=pentium_pro -xchip=pentium_pro" FCFLAGS="-xO3 -m32 -xarch=pentium_pro -xchip=pentium_pro" F77="" FC="/opt/developerstudio12.6/bin/f95" ASFLAGS="" OPTFLAGS="-xO3 -m32 -xarch=pentium_pro -xchip=pentium_pro" CC="/opt/developerstudio12.6/bin/cc" CXX="/opt/developerstudio12.6/bin/CC" CC_HOME="/opt/developerstudio12.6" CC_VERSION="" CXX_VERSION="Studio 12.6 Sun C++ 5.15 SunOS_i386 Patch 152716-04 2019/08/06" GARCH="i386" GAROSREL="5.10" GARPACKAGE="trunk" LD_OPTIONS="-R/opt/csw/lib/\$ISALIST -R/opt/csw/lib -M /home/ihsan/opencsw/.buildsys/v2/gar/lib/map.solaris10 -B direct -z ignore" PKG_CONFIG_PATH="/opt/csw/lib/pkgconfig" DESTDIR="/home/ihsan/opencsw/nsd/trunk/work/solaris10-i386/install-isa-pentium_pro" /home/ihsan/opencsw/nsd/trunk/work/solaris10-i386/build-isa-pentium_pro/nsd-4.10.1/configure --prefix=/opt/csw --exec_prefix=/opt/csw --bindir=/opt/csw/bin --sbindir=/opt/csw/sbin --libexecdir=/opt/csw/libexec --datadir=/opt/csw/share --sysconfdir=/etc/opt/csw --sharedstatedir=/opt/csw/share --localstatedir=/var/opt/csw --libdir=/opt/csw/lib --infodir=/opt/csw/share/info --includedir=/opt/csw/include --mandir=/opt/csw/share/man --with-ssl=/opt/csw --with-libevent=/opt/csw --with-pidfile=/var/run/nsd.pid --sysconfdir=/etc/opt/csw --with-dbfile=/var/opt/csw/nsd/nsd.db --with-xfrdfile=/var/opt/csw/nsd/xfrd.state checking for gcc... /opt/developerstudio12.6/bin/cc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether the compiler supports GNU C... no checking whether /opt/developerstudio12.6/bin/cc accepts -g... yes checking for /opt/developerstudio12.6/bin/cc option to enable C11 features... none needed checking for stdio.h... yes checking for stdlib.h... yes checking for string.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for strings.h... yes checking for sys/stat.h... yes checking for sys/types.h... yes checking for unistd.h... yes checking for wchar.h... yes checking for minix/config.h... no checking for vfork.h... no checking whether it is safe to define __EXTENSIONS__... yes checking whether _XOPEN_SOURCE should be defined... no checking for gcc... (cached) /opt/developerstudio12.6/bin/cc checking whether the compiler supports GNU C... (cached) no checking whether /opt/developerstudio12.6/bin/cc accepts -g... (cached) yes checking for /opt/developerstudio12.6/bin/cc option to enable C11 features... (cached) none needed checking for a sed that does not truncate output... /opt/csw/bin/gsed checking for gawk... gawk checking for grep that handles long lines and -e... /opt/csw/bin/ggrep checking for egrep... /opt/csw/bin/ggrep -E checking for flex... flex checking for lex output file root... lex.yy checking for lex library... none needed checking whether yytext is a pointer... yes checking for bison... bison -y checking whether ln -s works... yes checking for a BSD-compatible install... /opt/csw/bin/ginstall -c checking whether lex accepts -i... yes checking if lex defines yy_current_buffer... no checking for an ANSI C-conforming const... yes checking for inline... inline checking how to run the C preprocessor... /opt/developerstudio12.6/bin/cc -E checking for uid_t in sys/types.h... yes checking for pid_t... yes checking for size_t... yes checking for off_t... yes checking whether the C compiler (/opt/developerstudio12.6/bin/cc) accepts the "format" attribute... yes checking whether the C compiler (/opt/developerstudio12.6/bin/cc) accepts the "unused" attribute... yes checking whether the C compiler (/opt/developerstudio12.6/bin/cc) accepts the "weak" attribute... yes checking whether the C compiler (/opt/developerstudio12.6/bin/cc) accepts the "noreturn" attribute... yes checking if memcmp compares unsigned... yes checking whether ctime_r works with two arguments... yes checking for libevent... found in /opt/csw checking for library containing clock_gettime... -lrt checking for event.h... yes checking for /opt/developerstudio12.6/bin/cc options needed to detect all undeclared functions... none needed checking whether EV_VERSION_MAJOR is declared... no checking for library containing event_set... -levent checking for event_base_free... yes checking for event_base_once... yes checking for event_base_new... yes checking for event_base_get_method... yes checking for ev_loop... no checking for ev_default_loop... no checking for sys/wait.h that is POSIX.1 compatible... yes checking for time.h... yes checking for arpa/inet.h... yes checking for signal.h... yes checking for string.h... (cached) yes checking for strings.h... (cached) yes checking for fcntl.h... yes checking for limits.h... yes checking for netinet/in.h... yes checking for netinet/tcp.h... yes checking for stddef.h... yes checking for sys/param.h... yes checking for sys/socket.h... yes checking for sys/un.h... yes checking for syslog.h... yes checking for unistd.h... (cached) yes checking for sys/select.h... yes checking for stdarg.h... yes checking for stdint.h... (cached) yes checking for netdb.h... yes checking for sys/bitypes.h... no checking for tcpd.h... yes checking for glob.h... yes checking for grp.h... yes checking for endian.h... no checking for sys/random.h... yes checking for ifaddrs.h... no checking for double definition of struct va_list... no checking whether strptime needs defines... no checking for library containing inet_pton... -lnsl checking for library containing socket... -lsocket checking whether strptime works... yes checking if nonblocking sockets work... yes checking whether mkdir has one arg... no checking for int8_t... yes checking for int16_t... yes checking for int32_t... yes checking for int64_t... yes checking for uint8_t... yes checking for uint16_t... yes checking for uint32_t... yes checking for uint64_t... yes checking for socklen_t... yes checking for sig_atomic_t... yes checking for ssize_t... yes checking for suseconds_t... yes checking for in_addr_t... yes checking for struct sockaddr_storage.ss_family... yes checking for struct stat.st_mtimensec... no checking for struct stat.st_mtim.tv_nsec... yes checking for struct sockaddr_un.sun_len... no checking build system type... x86_64-pc-solaris2.10 checking host system type... x86_64-pc-solaris2.10 checking for working chown... yes checking for fork... yes checking for vfork... yes checking for working fork... yes checking for working vfork... (cached) yes checking for GNU libc compatible malloc... yes checking for _LARGEFILE_SOURCE value needed for large files... no checking for special C compiler options needed for large files... no checking for _FILE_OFFSET_BITS value needed for large files... 64 checking size of void*... 4 checking size of off_t... 8 checking for getrandom... no checking for arc4random... no checking for arc4random_uniform... no checking for library containing setusercontext... no checking for tzset... yes checking for alarm... yes checking for chroot... yes checking for dup2... yes checking for endpwent... yes checking for gethostname... yes checking for memset... yes checking for memcpy... yes checking for pwrite... yes checking for socket... yes checking for strcasecmp... yes checking for strchr... yes checking for strdup... yes checking for strerror... yes checking for strncasecmp... yes checking for strtol... yes checking for writev... yes checking for getaddrinfo... yes checking for getnameinfo... yes checking for freeaddrinfo... yes checking for gai_strerror... yes checking for sigaction... yes checking for sigprocmask... yes checking for strptime... yes checking for strftime... yes checking for localtime_r... yes checking for setusercontext... no checking for glob... yes checking for initgroups... yes checking for setresuid... no checking for setreuid... yes checking for setresgid... no checking for setregid... yes checking for getpwnam... yes checking for mmap... yes checking for ppoll... no checking for clock_gettime... yes checking for accept4... no checking for getifaddrs... no checking for struct mmsghdr... no checking for sched.h... yes checking for sys/cpuset.h... no checking for cpu_set_t... no checking for cpuset_t... no checking for cpuid_t... no checking for sched_setaffinity... no checking for basename... yes checking for inet_aton... yes checking for inet_pton... yes checking for inet_ntop... yes checking for snprintf... yes checking for strlcat... yes checking for strlcpy... yes checking for strptime... (cached) yes checking for b64_pton... no checking for b64_ntop... no checking for pselect... yes checking for memmove... yes checking for setproctitle... no checking for explicit_bzero... no checking for reallocarray... no checking for pselect prototype in sys/select.h... yes checking for ctime_r prototype in time.h... yes checking for struct timespec... yes checking for SSL... found in /opt/csw checking if libssl needs libdl... no checking for EVP_sha256 in -lcrypto... yes checking for openssl/ssl.h... yes checking for openssl/err.h... yes checking for openssl/rand.h... yes checking for openssl/ocsp.h... yes checking for openssl/core_names.h... no checking for openssl/x509v3.h... yes checking for HMAC_CTX_reset... no checking for HMAC_CTX_new... no checking for EVP_cleanup... yes checking for ERR_load_crypto_strings... yes checking for OPENSSL_init_crypto... no checking for CRYPTO_memcmp... yes checking for EC_KEY_new_by_curve_name... yes checking for EVP_MAC_CTX_new... no checking for EVP_MAC_CTX_set_params... no checking for EVP_MAC_CTX_get_mac_size... no checking for SHA1_Init... yes checking for ASN1_STRING_get0_data... no checking if SHA1_Init is deprecated... grep: illegal option -- e Usage: grep -hblcnsviw pattern file . . . no checking whether SSL_CTX_set_ecdh_auto is declared... yes checking whether SSL_CTX_set_tmp_ecdh is declared... yes checking whether TLS1_3_VERSION is declared... no configure: WARNING: No TLS 1.3, therefore XFR-over-TLS is disabled checking for OPENSSL_init_ssl... no checking for SSL_get1_peer_certificate... no checking for SSL_CTX_set_security_level... no checking for ERR_load_SSL_strings... yes checking if ERR_load_SSL_strings is deprecated... grep: illegal option -- e Usage: grep -hblcnsviw pattern file . . . no checking for pkg-config... /opt/csw/bin/pkg-config checking pkg-config is at least version 0.9.0... yes configure: creating ./config.status config.status: creating Makefile config.status: creating config.h === configuring in simdzone (/home/ihsan/opencsw/nsd/trunk/work/solaris10-i386/build-isa-pentium_pro/nsd-4.10.1/simdzone) configure: running /bin/bash ./configure --disable-option-checking '--prefix=/opt/csw' '--exec_prefix=/opt/csw' '--bindir=/opt/csw/bin' '--sbindir=/opt/csw/sbin' '--libexecdir=/opt/csw/libexec' '--datadir=/opt/csw/share' '--sharedstatedir=/opt/csw/share' '--localstatedir=/var/opt/csw' '--libdir=/opt/csw/lib' '--infodir=/opt/csw/share/info' '--includedir=/opt/csw/include' '--mandir=/opt/csw/share/man' '--with-ssl=/opt/csw' '--with-libevent=/opt/csw' '--with-pidfile=/var/run/nsd.pid' '--sysconfdir=/etc/opt/csw' '--with-dbfile=/var/opt/csw/nsd/nsd.db' '--with-xfrdfile=/var/opt/csw/nsd/xfrd.state' 'CC=/opt/developerstudio12.6/bin/cc' 'CFLAGS=-xO3 -m32 -xarch=pentium_pro -xchip=pentium_pro' 'LDFLAGS=-m32 -xarch=pentium_pro -xchip=pentium_pro -L/opt/csw/lib' 'CPPFLAGS=-I/opt/csw/include' 'PKG_CONFIG_PATH=/opt/csw/lib/pkgconfig' --cache-file=/dev/null --srcdir=. checking for gcc... /opt/developerstudio12.6/bin/cc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether the compiler supports GNU C... no checking whether /opt/developerstudio12.6/bin/cc accepts -g... yes checking for /opt/developerstudio12.6/bin/cc option to enable C11 features... none needed checking for stdio.h... yes checking for stdlib.h... yes checking for string.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for strings.h... yes checking for sys/stat.h... yes checking for sys/types.h... yes checking for unistd.h... yes checking for endian.h... no checking whether C compiler accepts -MMD... yes checking whether C compiler accepts -xMMD... yes checking build system type... x86_64-pc-solaris2.10 checking host system type... x86_64-pc-solaris2.10 checking target system type... x86_64-pc-solaris2.10 checking for immintrin.h... yes checking whether C compiler accepts -march=westmere... yes checking whether C compiler accepts -march=haswell... yes checking whether -march=westmere works... yes checking whether -march=haswell works... yes checking for realpath... yes configure: creating ./config.status config.status: creating Makefile config.status: creating config.h [configure-modulated] complete for nsd. gmake[1]: Leaving directory '/home/ihsan/opencsw/nsd/trunk' gmake[1]: Entering directory '/home/ihsan/opencsw/nsd/trunk' gmake -s MODULATION=global checksum

OpenCSW provides CPU optimizied binaries and this is the reason, why we specify the CPU architecture for configure. At execution, the isaexec framework ensures that the best binary is executed on the target CPU https://www.opencsw.org/manual/for-maintainers/32-bit-and-64-bit.html.

With --disable-westmere and --disable-haswell simdzone builds fine.

k0ekk0ek commented 1 month ago

Good to hear the --disable-* options work :+1:.

Configure output contains:

checking whether C compiler accepts -march=westmere... yes
checking whether C compiler accepts -march=haswell... yes
checking whether -march=westmere works... yes
checking whether -march=haswell works... yes

Would you mind checking if the order of CFLAGS for the check in configure.ac makes a difference? Alternatively, if you can provide me with temporary remote access to the build machine, I can quickly check for myself. configure should do the right thing automatically, it'd be good to fix this for users that might run into the same issue in the future.

idgn23 commented 1 month ago

Not sure for what I have to look for in configure.ac.

You should have access to the build machine. Just ssh to unstable10x from the OpenCSW login server.

k0ekk0ek commented 1 month ago

I'll have a look next week :+1:. When I did the x86 build it worked. Let me know the exact environment preparation steps for this build and I'll give it go (probably best via email).