Skip to content

Instantly share code, notes, and snippets.

@Rupurudu
Created May 2, 2020 19:32
Show Gist options
  • Save Rupurudu/9ce79cb26dda03637426421bf9771754 to your computer and use it in GitHub Desktop.
Save Rupurudu/9ce79cb26dda03637426421bf9771754 to your computer and use it in GitHub Desktop.
.xcompile
# platform agnostic and host tools
XGCCPATH:=/home/mustafacan/coreboot/util/crossgcc/xgcc/bin/
IASL:=/home/mustafacan/coreboot/util/crossgcc/xgcc/bin/iasl
HOSTCC?=gcc
CPUS?=2
###########################################################################
# arm
# TARCH_SEARCH= /home/mustafacan/coreboot/util/crossgcc/xgcc/bin/armv7-a-eabi- armv7-a-eabi- armv7-a-linux-gnu- armv7-a-linux- armv7-a- armv7-a-linux-gnueabi- /home/mustafacan/coreboot/util/crossgcc/xgcc/bin/armv7a-eabi- armv7a-eabi- armv7a-linux-gnu- armv7a-linux- armv7a- armv7a-linux-gnueabi- /home/mustafacan/coreboot/util/crossgcc/xgcc/bin/arm-eabi- arm-eabi- arm-linux-gnu- arm-linux- arm- arm-linux-gnueabi-
# elf32-littlearm toolchain ()
ARCH_SUPPORTED+=arm
SUBARCH_SUPPORTED+=arm armv4 armv7 armv7_m armv7_r
# GCC
GCC_CC_arm:=
GCC_CFLAGS_arm:=
# Generally available for GCC's cc1:
GCC_CFLAGS_arm+=-fno-delete-null-pointer-checks -Wlogical-op
GCC_ADAFLAGS_arm:=
GCC_COMPILER_RT_arm:=
GCC_COMPILER_RT_FLAGS_arm:=
# Clang
CLANG_CC_arm:=
CLANG_CFLAGS_arm:=
CLANG_CFLAGS_arm+=-Qunused-arguments -m32
# tone down clang compiler warnings
CLANG_CFLAGS_arm+=-Wno-unused-variable -Wno-unused-function -Wno-tautological-compare
CLANG_CFLAGS_arm+=-Wno-shift-overflow -Wno-address-of-packed-member -Wno-initializer-overrides
CLANG_COMPILER_RT_arm:=
CLANG_COMPILER_RT_FLAGS_arm:=
# GCC/Clang Common
ifeq ($(CONFIG_COMPILER_GCC)$(CONFIG_LP_COMPILER_GCC),y)
CC_arm:=$(GCC_CC_arm)
CFLAGS_arm:=$(GCC_CFLAGS_arm)
COMPILER_RT_arm:=$(GCC_COMPILER_RT_arm)
COMPILER_RT_FLAGS_arm:=$(GCC_COMPILER_RT_FLAGS_arm)
else
CC_arm:=$(CLANG_CC_arm)
CFLAGS_arm:=$(CLANG_CFLAGS_arm)
COMPILER_RT_arm:=$(CLANG_COMPILER_RT_arm)
COMPILER_RT_FLAGS_arm:=$(CLANG_COMPILER_RT_FLAGS_arm)
endif
CPP_arm:=invalidcpp
AS_arm:=invalidas
LD_arm:=invalidld
ifeq ($(CONFIG_COMPILER_GCC)$(CONFIG_LP_COMPILER_GCC),y)
NM_arm:=invalidgcc-nm
AR_arm:=invalidgcc-ar
else
NM_arm:=invalidnm
AR_arm:=invalidar
endif
OBJCOPY_arm:=invalidobjcopy
OBJDUMP_arm:=invalidobjdump
READELF_arm:=invalidreadelf
STRIP_arm:=invalidstrip
GNATBIND_arm:=invalidgnatbind
CROSS_COMPILE_arm:=invalid
###########################################################################
# arm64
# TARCH_SEARCH= /home/mustafacan/coreboot/util/crossgcc/xgcc/bin/aarch64-elf- aarch64-elf- aarch64-linux-gnu- aarch64-linux- aarch64- aarch64-linux-gnueabi-
# elf64-littleaarch64 toolchain ()
ARCH_SUPPORTED+=arm64
SUBARCH_SUPPORTED+=arm64 armv8_64
# GCC
GCC_CC_arm64:=
GCC_CFLAGS_arm64:=
# Generally available for GCC's cc1:
GCC_CFLAGS_arm64+=-fno-delete-null-pointer-checks -Wlogical-op
GCC_ADAFLAGS_arm64:=
GCC_COMPILER_RT_arm64:=
GCC_COMPILER_RT_FLAGS_arm64:=
# Clang
CLANG_CC_arm64:=
CLANG_CFLAGS_arm64:=
CLANG_CFLAGS_arm64+=-Qunused-arguments -m64
# tone down clang compiler warnings
CLANG_CFLAGS_arm64+=-Wno-unused-variable -Wno-unused-function -Wno-tautological-compare
CLANG_CFLAGS_arm64+=-Wno-shift-overflow -Wno-address-of-packed-member -Wno-initializer-overrides
CLANG_COMPILER_RT_arm64:=
CLANG_COMPILER_RT_FLAGS_arm64:=
# GCC/Clang Common
ifeq ($(CONFIG_COMPILER_GCC)$(CONFIG_LP_COMPILER_GCC),y)
CC_arm64:=$(GCC_CC_arm64)
CFLAGS_arm64:=$(GCC_CFLAGS_arm64)
COMPILER_RT_arm64:=$(GCC_COMPILER_RT_arm64)
COMPILER_RT_FLAGS_arm64:=$(GCC_COMPILER_RT_FLAGS_arm64)
else
CC_arm64:=$(CLANG_CC_arm64)
CFLAGS_arm64:=$(CLANG_CFLAGS_arm64)
COMPILER_RT_arm64:=$(CLANG_COMPILER_RT_arm64)
COMPILER_RT_FLAGS_arm64:=$(CLANG_COMPILER_RT_FLAGS_arm64)
endif
CPP_arm64:=invalidcpp
AS_arm64:=invalidas
LD_arm64:=invalidld
ifeq ($(CONFIG_COMPILER_GCC)$(CONFIG_LP_COMPILER_GCC),y)
NM_arm64:=invalidgcc-nm
AR_arm64:=invalidgcc-ar
else
NM_arm64:=invalidnm
AR_arm64:=invalidar
endif
OBJCOPY_arm64:=invalidobjcopy
OBJDUMP_arm64:=invalidobjdump
READELF_arm64:=invalidreadelf
STRIP_arm64:=invalidstrip
GNATBIND_arm64:=invalidgnatbind
CROSS_COMPILE_arm64:=invalid
###########################################################################
# riscv
# TARCH_SEARCH= /home/mustafacan/coreboot/util/crossgcc/xgcc/bin/riscv64-elf- riscv64-elf- riscv64-linux-gnu- riscv64-linux- riscv64- riscv64-linux-gnueabi- /home/mustafacan/coreboot/util/crossgcc/xgcc/bin/riscv-elf- riscv-elf- riscv-linux-gnu- riscv-linux- riscv- riscv-linux-gnueabi-
# elf64-littleriscv toolchain ()
ARCH_SUPPORTED+=riscv
SUBARCH_SUPPORTED+=riscv
# GCC
GCC_CC_riscv:=
GCC_CFLAGS_riscv:=
# Generally available for GCC's cc1:
GCC_CFLAGS_riscv+=-fno-delete-null-pointer-checks -Wlogical-op
GCC_ADAFLAGS_riscv:=
GCC_COMPILER_RT_riscv:=
GCC_COMPILER_RT_FLAGS_riscv:=
# Clang
CLANG_CC_riscv:=
CLANG_CFLAGS_riscv:=
CLANG_CFLAGS_riscv+=-Qunused-arguments -m64
# tone down clang compiler warnings
CLANG_CFLAGS_riscv+=-Wno-unused-variable -Wno-unused-function -Wno-tautological-compare
CLANG_CFLAGS_riscv+=-Wno-shift-overflow -Wno-address-of-packed-member -Wno-initializer-overrides
CLANG_COMPILER_RT_riscv:=
CLANG_COMPILER_RT_FLAGS_riscv:=
# GCC/Clang Common
ifeq ($(CONFIG_COMPILER_GCC)$(CONFIG_LP_COMPILER_GCC),y)
CC_riscv:=$(GCC_CC_riscv)
CFLAGS_riscv:=$(GCC_CFLAGS_riscv)
COMPILER_RT_riscv:=$(GCC_COMPILER_RT_riscv)
COMPILER_RT_FLAGS_riscv:=$(GCC_COMPILER_RT_FLAGS_riscv)
else
CC_riscv:=$(CLANG_CC_riscv)
CFLAGS_riscv:=$(CLANG_CFLAGS_riscv)
COMPILER_RT_riscv:=$(CLANG_COMPILER_RT_riscv)
COMPILER_RT_FLAGS_riscv:=$(CLANG_COMPILER_RT_FLAGS_riscv)
endif
CPP_riscv:=invalidcpp
AS_riscv:=invalidas
LD_riscv:=invalidld
ifeq ($(CONFIG_COMPILER_GCC)$(CONFIG_LP_COMPILER_GCC),y)
NM_riscv:=invalidgcc-nm
AR_riscv:=invalidgcc-ar
else
NM_riscv:=invalidnm
AR_riscv:=invalidar
endif
OBJCOPY_riscv:=invalidobjcopy
OBJDUMP_riscv:=invalidobjdump
READELF_riscv:=invalidreadelf
STRIP_riscv:=invalidstrip
GNATBIND_riscv:=invalidgnatbind
CROSS_COMPILE_riscv:=invalid
###########################################################################
# x64
# TARCH_SEARCH= /home/mustafacan/coreboot/util/crossgcc/xgcc/bin/x86_64-elf- x86_64-elf- x86_64-linux-gnu- x86_64-linux- x86_64- x86_64-linux-gnueabi-
# elf64-x86-64 toolchain (x86_64-linux-gnu-gcc)
ARCH_SUPPORTED+=x86_64
SUBARCH_SUPPORTED+=x86_64
# GCC
GCC_CC_x86_64:=x86_64-linux-gnu-gcc
GCC_CFLAGS_x86_64:= -Wno-address-of-packed-member -m64 -fuse-ld=bfd -fno-stack-protector -Wl,--build-id=none
# Generally available for GCC's cc1:
GCC_CFLAGS_x86_64+=-fno-delete-null-pointer-checks -Wlogical-op
GCC_ADAFLAGS_x86_64:= -m64 -fuse-ld=bfd -fno-stack-protector -Wl,--build-id=none
GCC_COMPILER_RT_x86_64:=/usr/lib/gcc/x86_64-linux-gnu/8/libgcc.a
GCC_COMPILER_RT_FLAGS_x86_64:=
# Clang
CLANG_CC_x86_64:=
CLANG_CFLAGS_x86_64:=
CLANG_CFLAGS_x86_64+=-Qunused-arguments -m64
# tone down clang compiler warnings
CLANG_CFLAGS_x86_64+=-Wno-unused-variable -Wno-unused-function -Wno-tautological-compare
CLANG_CFLAGS_x86_64+=-Wno-shift-overflow -Wno-address-of-packed-member -Wno-initializer-overrides
CLANG_COMPILER_RT_x86_64:=/usr/lib/gcc/x86_64-linux-gnu/8/libgcc.a
CLANG_COMPILER_RT_FLAGS_x86_64:=
# GCC/Clang Common
ifeq ($(CONFIG_COMPILER_GCC)$(CONFIG_LP_COMPILER_GCC),y)
CC_x86_64:=$(GCC_CC_x86_64)
CFLAGS_x86_64:=$(GCC_CFLAGS_x86_64)
COMPILER_RT_x86_64:=$(GCC_COMPILER_RT_x86_64)
COMPILER_RT_FLAGS_x86_64:=$(GCC_COMPILER_RT_FLAGS_x86_64)
else
CC_x86_64:=$(CLANG_CC_x86_64)
CFLAGS_x86_64:=$(CLANG_CFLAGS_x86_64)
COMPILER_RT_x86_64:=$(CLANG_COMPILER_RT_x86_64)
COMPILER_RT_FLAGS_x86_64:=$(CLANG_COMPILER_RT_FLAGS_x86_64)
endif
CFLAGS_x86_64 += -march=nocona -malign-data=abi
CPP_x86_64:=x86_64-linux-gnu-cpp
AS_x86_64:=x86_64-linux-gnu-as
LD_x86_64:=x86_64-linux-gnu-ld.bfd
ifeq ($(CONFIG_COMPILER_GCC)$(CONFIG_LP_COMPILER_GCC),y)
NM_x86_64:=x86_64-linux-gnu-gcc-nm
AR_x86_64:=x86_64-linux-gnu-gcc-ar
else
NM_x86_64:=x86_64-linux-gnu-nm
AR_x86_64:=x86_64-linux-gnu-ar
endif
OBJCOPY_x86_64:=x86_64-linux-gnu-objcopy
OBJDUMP_x86_64:=x86_64-linux-gnu-objdump
READELF_x86_64:=x86_64-linux-gnu-readelf
STRIP_x86_64:=x86_64-linux-gnu-strip
GNATBIND_x86_64:=x86_64-linux-gnu-gnatbind
CROSS_COMPILE_x86_64:=x86_64-linux-gnu-
###########################################################################
# x86
# TARCH_SEARCH= /home/mustafacan/coreboot/util/crossgcc/xgcc/bin/i386-elf- i386-elf- i386-linux-gnu- i386-linux- i386- i386-linux-gnueabi- /home/mustafacan/coreboot/util/crossgcc/xgcc/bin/x86_64-elf- x86_64-elf- x86_64-linux-gnu- x86_64-linux- x86_64- x86_64-linux-gnueabi-
# elf32-i386 toolchain ()
ARCH_SUPPORTED+=x86_32
SUBARCH_SUPPORTED+=x86_32
# GCC
GCC_CC_x86_32:=
GCC_CFLAGS_x86_32:=
# Generally available for GCC's cc1:
GCC_CFLAGS_x86_32+=-fno-delete-null-pointer-checks -Wlogical-op
GCC_ADAFLAGS_x86_32:=
GCC_COMPILER_RT_x86_32:=
GCC_COMPILER_RT_FLAGS_x86_32:=--wrap __divdi3 --wrap __udivdi3 --wrap __moddi3 --wrap __umoddi3
# Clang
CLANG_CC_x86_32:=
CLANG_CFLAGS_x86_32:=
CLANG_CFLAGS_x86_32+=-Qunused-arguments -m32
# tone down clang compiler warnings
CLANG_CFLAGS_x86_32+=-Wno-unused-variable -Wno-unused-function -Wno-tautological-compare
CLANG_CFLAGS_x86_32+=-Wno-shift-overflow -Wno-address-of-packed-member -Wno-initializer-overrides
CLANG_COMPILER_RT_x86_32:=
CLANG_COMPILER_RT_FLAGS_x86_32:=
# GCC/Clang Common
ifeq ($(CONFIG_COMPILER_GCC)$(CONFIG_LP_COMPILER_GCC),y)
CC_x86_32:=$(GCC_CC_x86_32)
CFLAGS_x86_32:=$(GCC_CFLAGS_x86_32)
COMPILER_RT_x86_32:=$(GCC_COMPILER_RT_x86_32)
COMPILER_RT_FLAGS_x86_32:=$(GCC_COMPILER_RT_FLAGS_x86_32)
else
CC_x86_32:=$(CLANG_CC_x86_32)
CFLAGS_x86_32:=$(CLANG_CFLAGS_x86_32)
COMPILER_RT_x86_32:=$(CLANG_COMPILER_RT_x86_32)
COMPILER_RT_FLAGS_x86_32:=$(CLANG_COMPILER_RT_FLAGS_x86_32)
endif
ifneq ($(CONFIG_USE_MARCH_586)$(CONFIG_LP_USE_MARCH_586),)
CFLAGS_x86_32 += -march=i586
else
CFLAGS_x86_32 += -march=i686
endif
CPP_x86_32:=invalidcpp
AS_x86_32:=invalidas
LD_x86_32:=invalidld
ifeq ($(CONFIG_COMPILER_GCC)$(CONFIG_LP_COMPILER_GCC),y)
NM_x86_32:=invalidgcc-nm
AR_x86_32:=invalidgcc-ar
else
NM_x86_32:=invalidnm
AR_x86_32:=invalidar
endif
OBJCOPY_x86_32:=invalidobjcopy
OBJDUMP_x86_32:=invalidobjdump
READELF_x86_32:=invalidreadelf
STRIP_x86_32:=invalidstrip
GNATBIND_x86_32:=invalidgnatbind
CROSS_COMPILE_x86_32:=invalid
###########################################################################
# ppc64
# TARCH_SEARCH= /home/mustafacan/coreboot/util/crossgcc/xgcc/bin/powerpc64-linux-gnu- powerpc64-linux-gnu- powerpc64-linux-gnu- powerpc64-linux- powerpc64- powerpc64-linux-gnueabi-
# elf64-powerpc toolchain ()
ARCH_SUPPORTED+=ppc64
SUBARCH_SUPPORTED+=ppc64
# GCC
GCC_CC_ppc64:=
GCC_CFLAGS_ppc64:=
# Generally available for GCC's cc1:
GCC_CFLAGS_ppc64+=-fno-delete-null-pointer-checks -Wlogical-op
GCC_ADAFLAGS_ppc64:=
GCC_COMPILER_RT_ppc64:=
GCC_COMPILER_RT_FLAGS_ppc64:=-mcpu=power8 -mbig-endian
# Clang
CLANG_CC_ppc64:=
CLANG_CFLAGS_ppc64:=
CLANG_CFLAGS_ppc64+=-Qunused-arguments -m64
# tone down clang compiler warnings
CLANG_CFLAGS_ppc64+=-Wno-unused-variable -Wno-unused-function -Wno-tautological-compare
CLANG_CFLAGS_ppc64+=-Wno-shift-overflow -Wno-address-of-packed-member -Wno-initializer-overrides
CLANG_COMPILER_RT_ppc64:=
CLANG_COMPILER_RT_FLAGS_ppc64:=
# GCC/Clang Common
ifeq ($(CONFIG_COMPILER_GCC)$(CONFIG_LP_COMPILER_GCC),y)
CC_ppc64:=$(GCC_CC_ppc64)
CFLAGS_ppc64:=$(GCC_CFLAGS_ppc64)
COMPILER_RT_ppc64:=$(GCC_COMPILER_RT_ppc64)
COMPILER_RT_FLAGS_ppc64:=$(GCC_COMPILER_RT_FLAGS_ppc64)
else
CC_ppc64:=$(CLANG_CC_ppc64)
CFLAGS_ppc64:=$(CLANG_CFLAGS_ppc64)
COMPILER_RT_ppc64:=$(CLANG_COMPILER_RT_ppc64)
COMPILER_RT_FLAGS_ppc64:=$(CLANG_COMPILER_RT_FLAGS_ppc64)
endif
CPP_ppc64:=invalidcpp
AS_ppc64:=invalidas
LD_ppc64:=invalidld
ifeq ($(CONFIG_COMPILER_GCC)$(CONFIG_LP_COMPILER_GCC),y)
NM_ppc64:=invalidgcc-nm
AR_ppc64:=invalidgcc-ar
else
NM_ppc64:=invalidnm
AR_ppc64:=invalidar
endif
OBJCOPY_ppc64:=invalidobjcopy
OBJDUMP_ppc64:=invalidobjdump
READELF_ppc64:=invalidreadelf
STRIP_ppc64:=invalidstrip
GNATBIND_ppc64:=invalidgnatbind
CROSS_COMPILE_ppc64:=invalid
XCOMPILE_COMPLETE:=1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment