Tried to update this on my server and desktop workstation, both amd64 11.2-RELEASE-p4. I don't understand the complaint regarding clang and 32bit x86. checking whether the C compiler still works... yes configure: error: Compiling PostgreSQL with clang, on 32bit x86, requires SSE2 support. Use -msse2 or use gcc. ===> Script "configure" failed unexpectedly. See attachments
Created attachment 199100 [details] config.log
Created attachment 199101 [details] packages
add to the Makefile .if ${ARCH} == "i386" CFLAGS+= -msse2 .endif
Hi, While it seems to be a simple fix to add -msse2 for i386 architecture, can I be sure whis will always work? And how come I cannot reproduce it using poudriere? (see also post to ports@ with the same question).
The same fix is in postgresql11-server/client and in ~ two dozens other ports. btw, new syntax: CFLAGS_i386= -msse2
...and: configure: error: Compiling PostgreSQL with clang, on 32bit x86, requires SSE2 support. Use -msse2 or use gcc. ===> Script "configure" failed unexpectedly. Please report the problem to pgsql@FreeBSD.org [maintainer] and attach the "/wrkdirs/usr/ports/databases/postgresql96-client/work/postgresql-9.6.11/config.log" including the output of the failure of your make command. Also, it might be a good idea to provide an overview of all packages installed on your system (e.g. a /usr/local/sbin/pkg-static info -g -Ea). *** Error code 1 Stop. make: stopped in /usr/ports/databases/postgresql96-client =>> Cleaning up wrkdir ===> Cleaning for postgresql96-client-9.6.11_1 build of databases/postgresql96-client | postgresql96-client-9.6.11_1 ended at Sun Nov 11 03:01:55 CET 2018
Forgot: Comment6 without fix. (Builds fine with the fix).
(In reply to Rob Belics from comment #0) It seems the config.log is not from amd64 but from i386. ... uname -m = i386 ... Right?
(In reply to w.schwarzenfeld from comment #5) will SSE2 work for *all* CPU:s? another option would be using GCC?
I've updated the port to use GCC instead of CLANG. I am not sure using SSE2 is a fix for any CPU, but this is not my area of expertise. Maybe someone with more knowledge would care to comment on whether SSE2 or GCC is the best option? Palle
It seems SSE2 was introduced with Pentium 4! Do we support anything older than that?
SSE2 will probably throw errors for unknown instructions for some people despite the age. Hyperscan went through a similar issue and is therefore not used as a dependency of Suricata on i386. GCC if fully portable is the better option, although that still feels like overkill. :/ Cheers, Franco
The postgresql ports have used gcc for i386 for some time now. This PR should have been closed a long time ago.