Gary reports the GCC 10 will emit calls to atomics intrinsics routines unless -mno-outline-atomics is specified. This means GCC-10 introduces new intrinsics, and even though it would be possible to work around this by specifying the command line option, this would require a new GCC10 toolchain profile to be created, which we prefer to avoid. So instead, add the new intrinsics to our library so they are provided when necessary. Signed-off-by: Ard Biesheuvel <ard.biesheuvel@arm.com> Tested-by: Gary Lin <glin@suse.com> Acked-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Leif Lindholm <leif@nuviainc.com> Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
		
			
				
	
	
		
			92 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			INI
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			INI
		
	
	
	
	
	
| #/** @file
 | |
| #  Base Library implementation.
 | |
| #
 | |
| #  Copyright (c) 2009, Apple Inc. All rights reserved.<BR>
 | |
| #  Copyright (c) 2011-2013, ARM Limited. All rights reserved.
 | |
| #
 | |
| #  SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| #
 | |
| #
 | |
| #**/
 | |
| 
 | |
| [Defines]
 | |
|   INF_VERSION                    = 0x00010005
 | |
|   BASE_NAME                      = CompilerIntrinsicsLib
 | |
|   FILE_GUID                      = 855274FA-3575-4C20-9709-C031DC5589FA
 | |
|   MODULE_TYPE                    = BASE
 | |
|   VERSION_STRING                 = 1.0
 | |
|   LIBRARY_CLASS                  = CompilerIntrinsicsLib
 | |
| 
 | |
| [Sources]
 | |
|   memcpy.c             | RVCT
 | |
|   memset.c             | RVCT
 | |
| 
 | |
|   memcpy.c             | GCC
 | |
|   memset.c             | GCC
 | |
| 
 | |
|   memcpy_ms.c          | MSFT
 | |
|   memset_ms.c          | MSFT
 | |
|   memcmp_ms.c          | MSFT
 | |
|   memmove_ms.c         | MSFT
 | |
| 
 | |
| [Sources.ARM]
 | |
|   Arm/mullu.asm        | RVCT
 | |
|   Arm/switch.asm       | RVCT
 | |
|   Arm/llsr.asm         | RVCT
 | |
|   Arm/memmove.asm      | RVCT
 | |
|   Arm/uread.asm        | RVCT
 | |
|   Arm/uwrite.asm       | RVCT
 | |
|   Arm/lasr.asm         | RVCT
 | |
|   Arm/llsl.asm         | RVCT
 | |
|   Arm/div.asm          | RVCT
 | |
|   Arm/uldiv.asm        | RVCT
 | |
|   Arm/ldivmod.asm      | RVCT
 | |
| 
 | |
|   Arm/ashrdi3.S        | GCC
 | |
|   Arm/ashldi3.S        | GCC
 | |
|   Arm/div.S            | GCC
 | |
|   Arm/divdi3.S         | GCC
 | |
|   Arm/divsi3.S         | GCC
 | |
|   Arm/lshrdi3.S        | GCC
 | |
|   Arm/memmove.S        | GCC
 | |
|   Arm/modsi3.S         | GCC
 | |
|   Arm/moddi3.S         | GCC
 | |
|   Arm/muldi3.S         | GCC
 | |
|   Arm/mullu.S          | GCC
 | |
|   Arm/udivsi3.S        | GCC
 | |
|   Arm/umodsi3.S        | GCC
 | |
|   Arm/udivdi3.S        | GCC
 | |
|   Arm/umoddi3.S        | GCC
 | |
|   Arm/udivmoddi4.S     | GCC
 | |
|   Arm/clzsi2.S         | GCC
 | |
|   Arm/ctzsi2.S         | GCC
 | |
|   Arm/ucmpdi2.S        | GCC
 | |
|   Arm/switch8.S        | GCC
 | |
|   Arm/switchu8.S       | GCC
 | |
|   Arm/switch16.S       | GCC
 | |
|   Arm/switch32.S       | GCC
 | |
|   Arm/sourcery.S       | GCC
 | |
|   Arm/uldiv.S          | GCC
 | |
|   Arm/ldivmod.S        | GCC
 | |
|   Arm/lasr.S           | GCC
 | |
|   Arm/llsr.S           | GCC
 | |
|   Arm/llsl.S           | GCC
 | |
|   Arm/uread.S          | GCC
 | |
|   Arm/uwrite.S         | GCC
 | |
| 
 | |
|   Arm/div.asm          | MSFT
 | |
|   Arm/uldiv.asm        | MSFT
 | |
|   Arm/ldivmod.asm      | MSFT
 | |
|   Arm/llsr.asm         | MSFT
 | |
| 
 | |
| [Sources.AARCH64]
 | |
|   AArch64/Atomics.S    | GCC
 | |
| 
 | |
| [Packages]
 | |
|   MdePkg/MdePkg.dec
 | |
|   ArmPkg/ArmPkg.dec
 | |
| 
 | |
| [BuildOptions]
 | |
|   MSFT:*_*_*_CC_FLAGS = /GL-
 | |
|   MSFT:*_*_ARM_ASM_FLAGS = /oldit
 |