scripts: add scripts/gnu_make to not hard-code make command

U-Boot is expected to be built on various platforms
but makefiles are written for GNU Make.

We should keep in mind that the command 'make' is not always GNU Make.

For example, on Linux, people generally do:

  make <board>_config; make

But FreeBSD folks do

  gmake <board>_config; gmake

(The command 'make' on FreeBSD is BSD Make, not GNU Make)

It is not a good idea to hard-code the command name 'make'
in MAKEALL or buildman.

Instead, they should call the make command via this helper script
to make sure it is GNU Make.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Series-to: uboot
Series-cc: sjg
Series-cc: trini
Series-cc: Jeroen Hofstee <jeroen@myspectrum.nl>
Cover-letter:
Do not hard-code the command name 'make' in upper-level tools

END
MAKEALL: make sure to invoke GNU Make

Since the command name 'make' is not GNU Make on some platforms
such as FreeBSD, MAKEALL should call the make via scripts/gnu_make.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
buildman: make sure to invoke GNU Make

Since the command name 'make' is not GNU Make on some platforms
such as FreeBSD, MAKEALL should call the make via scripts/gnu_make.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
kbuild.h: workaround for llvm IAS

KBuild (ab)uses the asm statement to write to a file and
llvm integrated as chokes about these invalid asm statements.
Workaround it by making it look like valid asm code.

Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl>
ARM: crt0.S: clear the global data

NOTE: smdk5420 snow smdkv310 apf27 arndale origen vpac270_ond_256 smdk5250
don't have a memset available.
Acked-by: Tim Harvey <tharvey@gateworks.com>
ARM: omap3/board: add spl specific board_init_f

gd is already setup when calling board_init_f and
preloader_console_init depends on it. Therefore move
the SPL specific part to its own board_init_f as it
prevents the need for a temporarily gd.
board_r: only assign gd when requested

When CONFIG_SYS_GENERIC_GLOBAL_DATA is not set the arch handles
the assignment of gd. At least in case of ARM/Aarch64 this means
board_init_r is alteady called with the new gd. Therefore only
assign gd if CONFIG_SYS_GENERIC_GLOBAL_DATA is defined.
Acked-by: Simon Gass <sjg@chromium.org>
Acked-by: Stefan Roese <sr@denx.de>
ARM: do not set gd in generic board again

Since crt0.S / crt0_64.S already allocate gd and assing it there
is no need to do it again board_f / board_r as it only wastes
stack space.
Acked-by: Simon Gass <sjg@chromium.org>
ARM: SPL: do not set gd again
cc-option: make it work with clang

By default clang will return echo a warning if an option is unknown.
Therefore turn warnings into errors when polling for options.
ARM: make gd a function a function for clang
inline: use the gcc inline version instead of the c99 one.
eabi_compat: add __aeabi_memcpy __aeabi_memset

fixes this:

common/libcommon.o: In function `env_callback_init':
/home/jeroen/software/u-boot/common/env_callback.c:47: undefined reference to `__aeabi_memset'
common/libcommon.o: In function `parse_stream_outer':
/home/jeroen/software/u-boot/common/hush.c:3154: undefined reference to `__aeabi_memset'
disk/libdisk.o: In function `get_device_and_partition':
/home/jeroen/software/u-boot/disk/part.c:596: undefined reference to `__aeabi_memcpy'
/home/jeroen/software/u-boot/disk/part.c:605: undefined reference to `__aeabi_memcpy'
fs/fat/libfat.o: In function `fat_set_blk_dev':
/home/jeroen/software/u-boot/fs/fat/fat.c:60: undefined reference to `__aeabi_memcpy'
fs/ubifs/libubifs.o: In function `ubifs_tnc_locate':
/home/jeroen/software/u-boot/fs/ubifs/tnc.c:1457: undefined reference to `__aeabi_memcpy'
fs/ubifs/libubifs.o: In function `tnc_insert':
/home/jeroen/software/u-boot/fs/ubifs/tnc.c:2008: undefined reference to `__aeabi_memcpy'
fs/ubifs/libubifs.o:/home/jeroen/software/u-boot/fs/ubifs/tnc.c:2333: more undefined references to `__aeabi_memcpy' follow
arm-linux-gnueabi-ld.bfd: BFD (GNU Binutils for Ubuntu) 2.23.2 assertion fail ../../bfd/elf32-arm.c:7683
arm-linux-gnueabi-ld.bfd: BFD (GNU Binutils for Ubuntu) 2.23.2 assertion fail ../../bfd/elf32-arm.c:7683
arm-linux-gnueabi-ld.bfd: error: required section '.rel.plt' not found in the linker script
arm-linux-gnueabi-ld.bfd: final link failed: Invalid operation
README.clang: build command with clang