svn commit: r567405 - in head/games/0ad: . files

Piotr Kubaj pkubaj at anongoth.pl
Fri Mar 5 20:13:18 UTC 2021


On 21-03-05 18:51:32, Guido Falsi wrote:
> Author: madpilot
> Date: Fri Mar  5 18:51:31 2021
> New Revision: 567405
> URL: https://svnweb.freebsd.org/changeset/ports/567405
> 
> Log:
>   - Import patches for powerpc64le
>   - Force the -msse2 option only for i386 where it is actually needed
>   
>   PR:		253924
>   Submitted by:	pkubaj@
> 
> Added:
>   head/games/0ad/files/patch-libraries_source_nvtt_src_src_nvcore_Debug.cpp   (contents, props changed)
>   head/games/0ad/files/patch-source_lib_byte__order.h   (contents, props changed)
>   head/games/0ad/files/patch-source_lib_sysdep_arch.h   (contents, props changed)
>   head/games/0ad/files/patch-source_lib_sysdep_arch_ppc64_ppc64.cpp   (contents, props changed)
>   head/games/0ad/files/patch-source_ps_GameSetup_HWDetect.cpp   (contents, props changed)
> Modified:
>   head/games/0ad/Makefile
>   head/games/0ad/files/patch-build_premake_premake5.lua
> 
> Modified: head/games/0ad/Makefile
> ==============================================================================
> --- head/games/0ad/Makefile	Fri Mar  5 18:28:34 2021	(r567404)
> +++ head/games/0ad/Makefile	Fri Mar  5 18:51:31 2021	(r567405)
> @@ -45,7 +45,6 @@ WRKSRC=		${WRKDIR}/${PORTNAME}-${PORTVERSION}-alpha
>  BUILD_WRKSRC=	${WRKSRC}/build/workspaces/gcc
>  MAKE_ARGS=	config=release verbose=1
>  CPPFLAGS+=	-DU_USING_ICU_NAMESPACE=1
> -CFLAGS+=	-msse2
>  BUNDLE_LIBS=	yes
>  DOS2UNIX_REGEX=	.*\.([ch]p{0,2}|make)
>  BINARY_ALIAS=	python3=${PYTHON_CMD}
> @@ -57,6 +56,10 @@ MAKE_ENV+=	JOBS=${_MAKE_JOBS}
>  PORTDATA=	*
>  
>  .include <bsd.port.pre.mk>
> +
> +.if ${ARCH} == i386
> +CFLAGS+=	-msse2
> +.endif

Instead of this, you could just set:
CFLAGS_i386=	-msse2
right below CPPFLAGS+=	-DU_USING_ICU_NAMESPACE=1

>  
>  post-patch:
>  	@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \
> 
> Modified: head/games/0ad/files/patch-build_premake_premake5.lua
> ==============================================================================
> --- head/games/0ad/files/patch-build_premake_premake5.lua	Fri Mar  5 18:28:34 2021	(r567404)
> +++ head/games/0ad/files/patch-build_premake_premake5.lua	Fri Mar  5 18:51:31 2021	(r567405)
> @@ -1,5 +1,14 @@
> ---- build/premake/premake5.lua.orig	2021-02-06 00:32:37 UTC
> +--- build/premake/premake5.lua.orig	2021-02-28 23:45:14 UTC
>  +++ build/premake/premake5.lua
> +@@ -87,6 +87,8 @@ else
> + 			arch = "aarch64"
> + 		elseif string.find(machine, "e2k") == 1 then
> + 			arch = "e2k"
> ++		elseif string.find(machine, "ppc64") == 1 or string.find(machine, "powerpc64") == 1 then
> ++			arch = "ppc64"
> + 		else
> + 			print("WARNING: Cannot determine architecture from GCC, assuming x86")
> + 		end
>  @@ -365,7 +365,7 @@ function project_set_build_flags()
>   
>   		if os.istarget("linux") or os.istarget("bsd") then
> @@ -9,3 +18,12 @@
>   			end
>   
>   			-- To use our local shared libraries, they need to be found in the
> +@@ -865,6 +867,8 @@ function setup_all_libs ()
> + 		table.insert(source_dirs, "lib/sysdep/arch/aarch64");
> + 	elseif arch == "e2k" then
> + 		table.insert(source_dirs, "lib/sysdep/arch/e2k");
> ++	elseif arch == "ppc64" then
> ++		table.insert(source_dirs, "lib/sysdep/arch/ppc64");
> + 	end
> +
> + 	-- OS-specific
> 
> Added: head/games/0ad/files/patch-libraries_source_nvtt_src_src_nvcore_Debug.cpp
> ==============================================================================
> --- /dev/null	00:00:00 1970	(empty, because file is newly added)
> +++ head/games/0ad/files/patch-libraries_source_nvtt_src_src_nvcore_Debug.cpp	Fri Mar  5 18:51:31 2021	(r567405)
> @@ -0,0 +1,12 @@
> +--- libraries/source/nvtt/src/src/nvcore/Debug.cpp.orig	2021-02-28 23:45:14 UTC
> ++++ libraries/source/nvtt/src/src/nvcore/Debug.cpp
> +@@ -628,6 +628,9 @@ namespace 
> + #  elif NV_CPU_X86
> +         ucontext_t * ucp = (ucontext_t *)secret;
> +         return (void *)ucp->uc_mcontext.mc_eip;
> ++#  elif NV_CPU_PPC
> ++        ucontext_t * ucp = (ucontext_t *)secret;
> ++        return (void *)ucp->uc_mcontext.mc_srr0;
> + #    else
> + #      error "Unknown CPU"
> + #    endif
> 
> Added: head/games/0ad/files/patch-source_lib_byte__order.h
> ==============================================================================
> --- /dev/null	00:00:00 1970	(empty, because file is newly added)
> +++ head/games/0ad/files/patch-source_lib_byte__order.h	Fri Mar  5 18:51:31 2021	(r567405)
> @@ -0,0 +1,11 @@
> +--- source/lib/byte_order.h.orig	2021-02-28 23:45:13 UTC
> ++++ source/lib/byte_order.h
> +@@ -33,7 +33,7 @@
> + #ifndef BYTE_ORDER
> + # define LITTLE_ENDIAN 0x4321
> + # define BIG_ENDIAN    0x1234
> +-# if ARCH_IA32 || ARCH_IA64 || ARCH_AMD64 || ARCH_ALPHA || ARCH_ARM || ARCH_AARCH64 || ARCH_MIPS || ARCH_E2K || defined(__LITTLE_ENDIAN__)
> ++# if ARCH_IA32 || ARCH_IA64 || ARCH_AMD64 || ARCH_ALPHA || ARCH_ARM || ARCH_AARCH64 || ARCH_MIPS || ARCH_E2K || ARCH_PPC64 || defined(__LITTLE_ENDIAN__)
> + #  define BYTE_ORDER LITTLE_ENDIAN
> + # else
> + #  define BYTE_ORDER BIG_ENDIAN
> 
> Added: head/games/0ad/files/patch-source_lib_sysdep_arch.h
> ==============================================================================
> --- /dev/null	00:00:00 1970	(empty, because file is newly added)
> +++ head/games/0ad/files/patch-source_lib_sysdep_arch.h	Fri Mar  5 18:51:31 2021	(r567405)
> @@ -0,0 +1,18 @@
> +--- source/lib/sysdep/arch.h.orig	2021-02-28 23:45:13 UTC
> ++++ source/lib/sysdep/arch.h
> +@@ -76,9 +76,14 @@
> + #else
> + # define ARCH_E2K 0
> + #endif
> ++#if defined(__PPC64__)
> ++# define ARCH_PPC64 1
> ++#else
> ++# define ARCH_PPC64 0
> ++#endif
> + 
> + // ensure exactly one architecture has been detected
> +-#if (ARCH_IA32+ARCH_IA64+ARCH_AMD64+ARCH_ALPHA+ARCH_ARM+ARCH_AARCH64+ARCH_MIPS+ARCH_E2K) != 1
> ++#if (ARCH_IA32+ARCH_IA64+ARCH_AMD64+ARCH_ALPHA+ARCH_ARM+ARCH_AARCH64+ARCH_MIPS+ARCH_E2K+ARCH_PPC64) != 1
> + # error "architecture not correctly detected (either none or multiple ARCH_* defined)"
> + #endif
> + 
> 
> Added: head/games/0ad/files/patch-source_lib_sysdep_arch_ppc64_ppc64.cpp
> ==============================================================================
> --- /dev/null	00:00:00 1970	(empty, because file is newly added)
> +++ head/games/0ad/files/patch-source_lib_sysdep_arch_ppc64_ppc64.cpp	Fri Mar  5 18:51:31 2021	(r567405)
> @@ -0,0 +1,53 @@
> +--- source/lib/sysdep/arch/ppc64/ppc64.cpp.orig	2021-02-28 23:47:02 UTC
> ++++ source/lib/sysdep/arch/ppc64/ppc64.cpp
> +@@ -0,0 +1,50 @@
> ++/* Copyright (C) 2012 Wildfire Games
> ++ * Copyright (C) 2018 Raptor Engineering, LLC
> ++ *
> ++ * Permission is hereby granted, free of charge, to any person obtaining
> ++ * a copy of this software and associated documentation files (the
> ++ * "Software"), to deal in the Software without restriction, including
> ++ * without limitation the rights to use, copy, modify, merge, publish,
> ++ * distribute, sublicense, and/or sell copies of the Software, and to
> ++ * permit persons to whom the Software is furnished to do so, subject to
> ++ * the following conditions:
> ++ *
> ++ * The above copyright notice and this permission notice shall be included
> ++ * in all copies or substantial portions of the Software.
> ++ *
> ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> ++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
> ++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
> ++ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
> ++ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
> ++ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
> ++ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
> ++ */
> ++
> ++/*
> ++ * routines specific to POWER
> ++ */
> ++
> ++#include "precompiled.h"
> ++
> ++#include "lib/sysdep/cpu.h"
> ++
> ++intptr_t cpu_AtomicAdd(volatile intptr_t* location, intptr_t increment)
> ++{
> ++	return __sync_fetch_and_add(location, increment);
> ++}
> ++
> ++bool cpu_CAS(volatile intptr_t* location, intptr_t expected, intptr_t newValue)
> ++{
> ++	return __sync_bool_compare_and_swap(location, expected, newValue);
> ++}
> ++
> ++bool cpu_CAS64(volatile i64* location, i64 expected, i64 newValue)
> ++{
> ++	return __sync_bool_compare_and_swap(location, expected, newValue);
> ++}
> ++
> ++const char* cpu_IdentifierString()
> ++{
> ++	return "IBM POWER"; // TODO
> ++}
> 
> Added: head/games/0ad/files/patch-source_ps_GameSetup_HWDetect.cpp
> ==============================================================================
> --- /dev/null	00:00:00 1970	(empty, because file is newly added)
> +++ head/games/0ad/files/patch-source_ps_GameSetup_HWDetect.cpp	Fri Mar  5 18:51:31 2021	(r567405)
> @@ -0,0 +1,10 @@
> +--- source/ps/GameSetup/HWDetect.cpp.orig	2021-02-28 23:45:13 UTC
> ++++ source/ps/GameSetup/HWDetect.cpp
> +@@ -124,6 +124,7 @@ void RunHardwareDetection()
> + 	scriptInterface.SetProperty(settings, "arch_arm", ARCH_ARM);
> + 	scriptInterface.SetProperty(settings, "arch_aarch64", ARCH_AARCH64);
> + 	scriptInterface.SetProperty(settings, "arch_e2k", ARCH_E2K);
> ++	scriptInterface.SetProperty(settings, "arch_ppc64", ARCH_PPC64);
> + 
> + #ifdef NDEBUG
> + 	scriptInterface.SetProperty(settings, "build_debug", 0);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/svn-ports-head/attachments/20210305/389e3449/attachment.sig>


More information about the svn-ports-head mailing list