diff --git a/configure/os/CONFIG.Common.RHEL10-x86_64 b/configure/os/CONFIG.Common.RHEL10-x86_64 new file mode 100644 index 000000000..49b19c524 --- /dev/null +++ b/configure/os/CONFIG.Common.RHEL10-x86_64 @@ -0,0 +1,15 @@ +# Include definitions common to linux pentium targets +include $(CONFIG)/os/CONFIG.Common.linux-x86_64 + +BUILD_CLASS = HOST + +TOOLSET_LOCATION = /opt/rh +TOOLSET = gcc-toolset-15 +STD_CXXFLAGS = -std=c++20 +STD_CFLAGS = -std=c17 + +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.RHEL10-x86_64-clang b/configure/os/CONFIG.Common.RHEL10-x86_64-clang new file mode 100644 index 000000000..b07b8b65e --- /dev/null +++ b/configure/os/CONFIG.Common.RHEL10-x86_64-clang @@ -0,0 +1,5 @@ +include $(CONFIG)/os/CONFIG.Common.linux-clang + +BUILD_CLASS = HOST + +STD_CXXFLAGS = -std=c++2a diff --git a/configure/os/CONFIG.RHEL10-x86_64.Common b/configure/os/CONFIG.RHEL10-x86_64.Common new file mode 100644 index 000000000..26c65b727 --- /dev/null +++ b/configure/os/CONFIG.RHEL10-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.RHEL10-x86_64.RHEL10-x86_64 b/configure/os/CONFIG.RHEL10-x86_64.RHEL10-x86_64 new file mode 100644 index 000000000..2bf7aace1 --- /dev/null +++ b/configure/os/CONFIG.RHEL10-x86_64.RHEL10-x86_64 @@ -0,0 +1,2 @@ +# Include common linux definitions +include $(CONFIG)/os/CONFIG.linux-x86.linux-x86 diff --git a/configure/os/CONFIG.RHEL10-x86_64.RHEL8-x86_64 b/configure/os/CONFIG.RHEL10-x86_64.RHEL8-x86_64 new file mode 100644 index 000000000..1ddec0cdd --- /dev/null +++ b/configure/os/CONFIG.RHEL10-x86_64.RHEL8-x86_64 @@ -0,0 +1,25 @@ +# 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 +CPPFLAGS += $(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 + +# Allow to run cross-tests which expect different lib versions +export LD_PRELOAD=$(SYSROOT)/lib64/libreadline.so diff --git a/configure/os/CONFIG.RHEL10-x86_64.RHEL9-x86_64 b/configure/os/CONFIG.RHEL10-x86_64.RHEL9-x86_64 new file mode 100644 index 000000000..a31d786d4 --- /dev/null +++ b/configure/os/CONFIG.RHEL10-x86_64.RHEL9-x86_64 @@ -0,0 +1,25 @@ +# Include common linux definitions +include $(CONFIG)/os/CONFIG.linux-x86.linux-x86 + +# "Cross compile" for RHEL9-x86_64 +# Expects RHEL9 RPMs gcc-toolset-15-gcc-c++ and readline-devel +# to be installed in $(SYSROOT) +# These can be installed on RHEL9 with: +# yum install --installroot=$(SYSROOT) +# (Assuming $(SYSROOT) is on a shared network volume.) + +SYSROOT = /opt/RHEL9 + +# "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 +CPPFLAGS += $(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 + +# Allow to run cross-tests which expect different lib versions +export LD_PRELOAD=$(SYSROOT)/lib64/libreadline.so diff --git a/configure/os/CONFIG.RHEL10-x86_64.windows-x64 b/configure/os/CONFIG.RHEL10-x86_64.windows-x64 new file mode 100644 index 000000000..f79e7a452 --- /dev/null +++ b/configure/os/CONFIG.RHEL10-x86_64.windows-x64 @@ -0,0 +1 @@ +include $(CONFIG)/os/CONFIG.Linux.windows-x64 diff --git a/configure/os/CONFIG.RHEL10-x86_64.windows-x64-mingw b/configure/os/CONFIG.RHEL10-x86_64.windows-x64-mingw new file mode 100644 index 000000000..58484c14e --- /dev/null +++ b/configure/os/CONFIG.RHEL10-x86_64.windows-x64-mingw @@ -0,0 +1 @@ +include $(CONFIG)/os/CONFIG.linux-x86_64.windows-x64-mingw diff --git a/configure/os/CONFIG_SITE.RHEL10-x86_64.Common b/configure/os/CONFIG_SITE.RHEL10-x86_64.Common new file mode 100644 index 000000000..e90a792ae --- /dev/null +++ b/configure/os/CONFIG_SITE.RHEL10-x86_64.Common @@ -0,0 +1,13 @@ +include $(CONFIG)/os/CONFIG_SITE.linux-x86_64.Common + +# Improved error checking with clang +CROSS_COMPILER_TARGET_ARCHS += RHEL10-x86_64-clang +CROSS_COMPILER_RUNTEST_ARCHS += RHEL10-x86_64-clang + +# Build for old RHEL9 64 bit +CROSS_COMPILER_TARGET_ARCHS += RHEL9-x86_64 +CROSS_COMPILER_RUNTEST_ARCHS += RHEL9-x86_64 + +# Build for old RHEL8 64 bit +CROSS_COMPILER_TARGET_ARCHS += RHEL8-x86_64 +CROSS_COMPILER_RUNTEST_ARCHS += RHEL8-x86_64 diff --git a/configure/os/CONFIG_SITE.RHEL10-x86_64.windows-x64-mingw b/configure/os/CONFIG_SITE.RHEL10-x86_64.windows-x64-mingw new file mode 100644 index 000000000..06511db26 --- /dev/null +++ b/configure/os/CONFIG_SITE.RHEL10-x86_64.windows-x64-mingw @@ -0,0 +1 @@ +include $(CONFIG)/os/CONFIG_SITE.linux-x86_64.windows-x64-mingw