diff --git a/configure/os/CONFIG.Common.RHEL9-x86_64 b/configure/os/CONFIG.Common.RHEL9-x86_64 new file mode 100644 index 000000000..5673dc729 --- /dev/null +++ b/configure/os/CONFIG.Common.RHEL9-x86_64 @@ -0,0 +1,18 @@ +# Include definitions common to linux pentium targets +include $(CONFIG)/os/CONFIG.Common.linux-x86_64 + +TOOLSET_LOCATION = /opt/rh +TOOLSET = gcc-toolset-12 +STD_CXXFLAGS = -std=c++20 + +# Fix bug in gcc-toolset-11 calling the old assembler +ifneq ($(filter %-11,$(TOOLSET)),) +TARGET_CPPFLAGS += $(TOOLSET_DIR:%=-B$(SYSROOT)%/bin) +TARGET_LDFLAGS += $(TOOLSET_DIR:%=-B$(SYSROOT)%/bin) +endif + +ifneq (($(TOOLSET)),) +# Perl requests (native) annobin incompatible with the annobin from any TOOLSET +# Disable Perl specific CFLAGS +override Cap5_CFLAGS= +endif diff --git a/configure/os/CONFIG.Common.RHEL9-x86_64-clang b/configure/os/CONFIG.Common.RHEL9-x86_64-clang new file mode 100644 index 000000000..b93ce65ff --- /dev/null +++ b/configure/os/CONFIG.Common.RHEL9-x86_64-clang @@ -0,0 +1,3 @@ +include $(CONFIG)/os/CONFIG.Common.linux-clang + +STD_CXXFLAGS = -std=c++2a diff --git a/configure/os/CONFIG.Linux.windows-x64 b/configure/os/CONFIG.Linux.windows-x64 index a03f930fe..f21e61176 100644 --- a/configure/os/CONFIG.Linux.windows-x64 +++ b/configure/os/CONFIG.Linux.windows-x64 @@ -3,5 +3,6 @@ include $(CONFIG)/os/CONFIG.windows-x64.windows-x64 VALID_BUILDS = Ioc Command MSVC_VERSION ?= 2019 -PATH := /opt/wine-msvc-$(MSVC_VERSION)/bin/x64:$(PATH) +PATH := /opt/gfa-wine/bin:/opt/wine-msvc-$(MSVC_VERSION)/bin/x64:$(PATH) export WINEPREFIX = $(HOME)/.wine-$(EPICS_HOST_ARCH) +export WINE = wine64 diff --git a/configure/os/CONFIG.RHEL9-x86_64.Common b/configure/os/CONFIG.RHEL9-x86_64.Common new file mode 100644 index 000000000..26c65b727 --- /dev/null +++ b/configure/os/CONFIG.RHEL9-x86_64.Common @@ -0,0 +1,3 @@ +#CONFIG.$(EPICS_HOST_ARCH).Common is required by build system +#Include definitions common to linux hosts +include $(CONFIG)/os/CONFIG.linux-x86_64.Common diff --git a/configure/os/CONFIG.RHEL9-x86_64.RHEL7-x86_64 b/configure/os/CONFIG.RHEL9-x86_64.RHEL7-x86_64 new file mode 100644 index 000000000..47c5acfa0 --- /dev/null +++ b/configure/os/CONFIG.RHEL9-x86_64.RHEL7-x86_64 @@ -0,0 +1,18 @@ +# Include common linux definitions +include $(CONFIG)/os/CONFIG.linux-x86.linux-x86 + +# "Cross compile" for RHEL7-x86_64 +# Expects RHEL7 RPMs c++ and readline-devel installed +# in $(SYSROOT) +# This can be installed on RHEL7 with: +# yum install --installroot=$(SYSROOT) +# (Assuming $(SYSROOT) is on a shared network volume.) +# Optionally use a newer TOOLSET (installed on $(SYSROOT)). + +SYSROOT = /opt/RHEL7 + +# "Cross" TOOLSET progs need to find their libraries +LD_LIBRARY_PATH = $(TOOLSET_DIR:%=$(SYSROOT)%/usr/$$LIB:)/usr/$$LIB:$(SYSROOT)/usr/$$LIB + +# The linker has problems to find indirectly referenced libraries +PROD_LDLIBS += $(LDLIBS) diff --git a/configure/os/CONFIG.RHEL9-x86_64.RHEL8-x86_64 b/configure/os/CONFIG.RHEL9-x86_64.RHEL8-x86_64 new file mode 100644 index 000000000..8fc6cec5b --- /dev/null +++ b/configure/os/CONFIG.RHEL9-x86_64.RHEL8-x86_64 @@ -0,0 +1,23 @@ +# Include common linux definitions +include $(CONFIG)/os/CONFIG.linux-x86.linux-x86 + +# "Cross compile" for RHEL8-x86_64 +# Expects RHEL8 RPMs gcc-toolset-12-gcc-c++ and readline-devel +# to be installed in $(SYSROOT) +# These can be installed on RHEL8 with: +# yum install --installroot=$(SYSROOT) +# (Assuming $(SYSROOT) is on a shared network volume.) + +SYSROOT = /opt/RHEL8 + +# "Cross" TOOLSET progs need to find their libraries. +# But linker gets confused with LD_LIBRARY_PATH. +# Thus only wrap the compiler. +WRAPPER = -wrapper env,LD_LIBRARY_PATH=$(TOOLSET_DIR:%=$(SYSROOT)%/usr/lib64:)/usr/lib64:$(SYSROOT)/usr/lib64 +TARGET_CPPFLAGS += $(WRAPPER) +TARGET_PROD_LDFLAGS += $(WRAPPER) + +# These programs as cross tools would also need LD_LIBRARY_PATH. +# But but our host versions work just fine. +AR = ar -rc +RANLIB = ranlib diff --git a/configure/os/CONFIG.RHEL9-x86_64.RHEL9-x86_64 b/configure/os/CONFIG.RHEL9-x86_64.RHEL9-x86_64 new file mode 100644 index 000000000..2bf7aace1 --- /dev/null +++ b/configure/os/CONFIG.RHEL9-x86_64.RHEL9-x86_64 @@ -0,0 +1,2 @@ +# Include common linux definitions +include $(CONFIG)/os/CONFIG.linux-x86.linux-x86 diff --git a/configure/os/CONFIG.RHEL9-x86_64.windows-x64 b/configure/os/CONFIG.RHEL9-x86_64.windows-x64 new file mode 100644 index 000000000..f79e7a452 --- /dev/null +++ b/configure/os/CONFIG.RHEL9-x86_64.windows-x64 @@ -0,0 +1 @@ +include $(CONFIG)/os/CONFIG.Linux.windows-x64 diff --git a/configure/os/CONFIG_SITE.RHEL9-x86_64.Common b/configure/os/CONFIG_SITE.RHEL9-x86_64.Common new file mode 100644 index 000000000..ad5296dfc --- /dev/null +++ b/configure/os/CONFIG_SITE.RHEL9-x86_64.Common @@ -0,0 +1,10 @@ +include $(CONFIG)/os/CONFIG_SITE.linux-x86_64.Common + +# Improved error checking with clang +CROSS_COMPILER_TARGET_ARCHS += RHEL9-x86_64-clang + +# Build for old RHEL8 64 bit +CROSS_COMPILER_TARGET_ARCHS += RHEL8-x86_64 + +# Build for old RHEL7 64 bit +CROSS_COMPILER_TARGET_ARCHS += RHEL7-x86_64