24d1d8ec9e
With tilepro support removal we can now simplify internal tile support by moving the directory structure to avoid the unnecessary directory levels in tile/tilegx both on generic and linux folders. Checked with a build for tilegx-linux-gnu and tilegx-linux-gnu-32 with and without the patch, there is no difference in generated binary with a dissassemble. * stdlib/bug-getcontext.c (do_test): Remove tilepro mention in comment. * sysdeps/tile/preconfigure: Remove tilegx folder. * sysdeps/tile/tilegx/Implies: Move definitions to ... * sysdeps/tile/Implies: ... here. * sysdeps/tile/tilegx/Makefile: Move rules to ... * sysdeps/tile/Makefile: ... here. * sysdeps/tile/tilegx/atomic-machine.h: Move definitions to ... * sysdeps/tile/atomic-machine.h: ... here. Add include guards. * sysdeps/tile/tilegx/bits/wordsize.h: Move to ... * sysdeps/tile/bits/wordsize.h: ... here. * sysdeps/tile/tilegx/*: Move to ... * sysdeps/tile/*: ... here. * sysdeps/tile/tilegx/tilegx32/Implies: Move to ... * sysdeps/tile/tilegx32/Implies: ... here. * sysdeps/tile/tilegx/tilegx64/Implies: Move to ... * sysdeps/tile/tilegx64/Implies: ... here. * sysdeps/unix/sysv/linux/tile/tilegx/Makefile: Move definitions to ... * sysdeps/unix/sysv/linux/tile/Makefile: ... here. * sysdeps/unix/sysv/linux/tile/tilegx/*: Move to ... * sysdeps/unix/sysv/linux/tile/*: ... here. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/*: Move to ... * sysdeps/unix/sysv/linux/tile/tilegx32/*: ... here. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/*: Move to ... * sysdeps/unix/sysv/linux/tile/tilegx64/*: ... here.
50 lines
1.5 KiB
Makefile
50 lines
1.5 KiB
Makefile
include $(common-objpfx)cflags-mcmodel-large.mk
|
|
|
|
# Check for gcc to support the command-line switch, and for
|
|
# binutils to support the hwN_plt() assembly operators and relocations.
|
|
$(common-objpfx)cflags-mcmodel-large.mk: $(common-objpfx)config.make
|
|
mcmodel=no; \
|
|
(echo 'int main() { return getuid(); }' | \
|
|
$(CC) -o /dev/null -xc - -mcmodel=large -fpic) && mcmodel=yes; \
|
|
echo "cflags-mcmodel-large = $$mcmodel" > $@
|
|
|
|
ifeq (yes,$(cflags-mcmodel-large))
|
|
|
|
ifeq ($(subdir),csu)
|
|
# elf-init.c is in libc_nonshared.o (the end of the shared object) but
|
|
# must reach the _init symbol at the very start of the shared object.
|
|
CFLAGS-elf-init.c += -mcmodel=large
|
|
|
|
# __gmon_start__ is at the very start of the shared object when linked
|
|
# with profiling, but calls to libc.so via the PLT at the very end.
|
|
CFLAGS-gmon-start.c += -mcmodel=large
|
|
endif
|
|
|
|
else
|
|
|
|
# Don't try to compile assembly code with hwN_plt() directives if the
|
|
# toolchain doesn't support -mcmodel=large.
|
|
ifeq ($(subdir),csu)
|
|
CPPFLAGS-start.S += -DNO_PLT_PCREL
|
|
CPPFLAGS-crti.S += -DNO_PLT_PCREL
|
|
endif
|
|
ifeq ($(subdir),nptl)
|
|
CPPFLAGS-pt-crti.S += -DNO_PLT_PCREL
|
|
endif
|
|
|
|
endif
|
|
|
|
# We don't support long doubles as a distinct type. We don't need to set
|
|
# this variable; it's here mostly for documentational purposes.
|
|
|
|
long-double-fcts = no
|
|
|
|
ifeq ($(subdir),gmon)
|
|
sysdep_routines += _mcount
|
|
endif
|
|
|
|
ifeq ($(subdir),elf)
|
|
# Extra shared linker files to link only into dl-allobjs.so.
|
|
sysdep-rtld-routines += dl-start __tls_get_addr
|
|
endif
|