libgloss: arm: break newlib dependency
The libgloss port has been reaching back into newlib internals for a single header whose contents have been frozen for almost a decade. To break this backwards libgloss->newlib dependency, move the acle header to the srcroot include/ so everyone can use the same copy.
This commit is contained in:
parent
31e5ce10db
commit
26f9cfd7a8
|
@ -11,6 +11,7 @@ PHONY =
|
|||
|
||||
SUBDIRS = @subdirs@ .
|
||||
|
||||
srcroot = $(top_srcdir)/..
|
||||
tooldir = $(exec_prefix)/$(target_alias)
|
||||
|
||||
multilibtooldir = $(tooldir)/lib$(MULTISUBDIR)
|
||||
|
@ -23,6 +24,8 @@ includetool_DATA =
|
|||
includesystooldir = $(tooldir)/include/sys
|
||||
includesystool_DATA =
|
||||
|
||||
AM_CPPFLAGS = -idirafter $(srcroot)/include
|
||||
|
||||
# A fake library so automake will generate rules for plain objects that we want
|
||||
# to install (e.g. our crt0.o objects).
|
||||
noinst_LIBRARIES = libobjs.a
|
||||
|
|
|
@ -657,6 +657,7 @@ info_TEXINFOS = $(am__append_1)
|
|||
CLEANFILES = $(am__append_4)
|
||||
PHONY =
|
||||
SUBDIRS = @subdirs@ .
|
||||
srcroot = $(top_srcdir)/..
|
||||
tooldir = $(exec_prefix)/$(target_alias)
|
||||
multilibtooldir = $(tooldir)/lib$(MULTISUBDIR)
|
||||
multilibtool_DATA = $(am__append_3) $(am__append_7) $(am__append_9) \
|
||||
|
@ -669,6 +670,7 @@ includetooldir = $(tooldir)/include
|
|||
includetool_DATA = $(am__append_10)
|
||||
includesystooldir = $(tooldir)/include/sys
|
||||
includesystool_DATA = $(am__append_11)
|
||||
AM_CPPFLAGS = -idirafter $(srcroot)/include
|
||||
|
||||
# A fake library so automake will generate rules for plain objects that we want
|
||||
# to install (e.g. our crt0.o objects).
|
||||
|
|
|
@ -97,8 +97,6 @@ IQ80310_INSTALL = install-iq80310
|
|||
# Host specific makefile fragment comes in here.
|
||||
@host_makefile_frag@
|
||||
|
||||
INCLUDES += `if [ -d ${objroot}/newlib ]; then echo -I$(srcroot)/newlib/libc/machine/arm; fi`
|
||||
|
||||
#
|
||||
# build a test program for each target board. Just trying to get
|
||||
# it to link is a good test, so we ignore all the errors for now.
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
#ifndef _LIBGLOSS_ARM_H
|
||||
#define _LIBGLOSS_ARM_H
|
||||
|
||||
#include "acle-compat.h"
|
||||
#include "arm-acle-compat.h"
|
||||
|
||||
/* Checking for targets supporting only Thumb instructions (eg. ARMv6-M) or
|
||||
supporting Thumb-2 instructions, whether ARM instructions are available or
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
NEWLIB_CFLAGS = `if [ -d ${objroot}/newlib ]; then echo -I${objroot}/newlib/targ-include -I${srcroot}/newlib/libc/include; fi`
|
||||
NEWLIB_LDFLAGS = `if [ -d ${objroot}/newlib ]; then echo -B${objroot}/newlib/ -L${objroot}/newlib/; fi`
|
||||
|
||||
INCLUDES = -I. -I$(srcdir)/.. -I$(objdir)/..
|
||||
INCLUDES = -I. -I$(srcdir)/.. -I$(objdir)/.. -idirafter $(srcroot)/include
|
||||
# Note that when building the library, ${MULTILIB} is not the way multilib
|
||||
# options are passed; they're passed in $(CFLAGS).
|
||||
CFLAGS_FOR_TARGET = -O2 -g ${MULTILIB} ${INCLUDES} ${NEWLIB_CFLAGS}
|
||||
|
|
|
@ -63,13 +63,14 @@ AM_MAKEFLAGS = \
|
|||
|
||||
FLAGS_TO_PASS=$(AM_MAKEFLAGS)
|
||||
|
||||
srcroot = $(top_srcdir)/..
|
||||
tooldir = $(exec_prefix)/$(host_alias)
|
||||
toollibdir = $(tooldir)/lib$(MULTISUBDIR)
|
||||
|
||||
# These are useful for standalone object files like crt0.o.
|
||||
AM_CFLAGS = $(AM_CFLAGS_$(subst /,_,$(@D))) $(AM_CFLAGS_$(subst /,_,$(@D)_$(<F)))
|
||||
AM_CCASFLAGS = $(AM_CCASFLAGS_$(subst /,_,$(@D))) $(AM_CCASFLAGS_$(subst /,_,$(@D)_$(<F)))
|
||||
AM_CPPFLAGS = $(NEWLIB_CFLAGS) $(TARGET_CFLAGS) $(AM_CPPFLAGS_$(subst /,_,$(@D))) $(AM_CPPFLAGS_$(subst /,_,$(@D)_$(<F)))
|
||||
AM_CPPFLAGS = $(NEWLIB_CFLAGS) $(TARGET_CFLAGS) $(AM_CPPFLAGS_$(subst /,_,$(@D))) $(AM_CPPFLAGS_$(subst /,_,$(@D)_$(<F))) -idirafter $(srcroot)/include
|
||||
|
||||
toollib_LIBRARIES = libm.a \
|
||||
libc.a
|
||||
|
|
|
@ -3677,7 +3677,6 @@ pdfdir = @pdfdir@
|
|||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
runstatedir = @runstatedir@
|
||||
sbindir = @sbindir@
|
||||
shared_machine_dir = @shared_machine_dir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
|
@ -3751,13 +3750,14 @@ AM_MAKEFLAGS = \
|
|||
"DESTDIR=$(DESTDIR)"
|
||||
|
||||
FLAGS_TO_PASS = $(AM_MAKEFLAGS)
|
||||
srcroot = $(top_srcdir)/..
|
||||
tooldir = $(exec_prefix)/$(host_alias)
|
||||
toollibdir = $(tooldir)/lib$(MULTISUBDIR)
|
||||
|
||||
# These are useful for standalone object files like crt0.o.
|
||||
AM_CFLAGS = $(AM_CFLAGS_$(subst /,_,$(@D))) $(AM_CFLAGS_$(subst /,_,$(@D)_$(<F)))
|
||||
AM_CCASFLAGS = $(AM_CCASFLAGS_$(subst /,_,$(@D))) $(AM_CCASFLAGS_$(subst /,_,$(@D)_$(<F)))
|
||||
AM_CPPFLAGS = $(NEWLIB_CFLAGS) $(TARGET_CFLAGS) $(AM_CPPFLAGS_$(subst /,_,$(@D))) $(AM_CPPFLAGS_$(subst /,_,$(@D)_$(<F)))
|
||||
AM_CPPFLAGS = $(NEWLIB_CFLAGS) $(TARGET_CFLAGS) $(AM_CPPFLAGS_$(subst /,_,$(@D))) $(AM_CPPFLAGS_$(subst /,_,$(@D)_$(<F))) -idirafter $(srcroot)/include
|
||||
toollib_LIBRARIES = libm.a libc.a $(am__append_72)
|
||||
@HAVE_MULTISUBDIR_TRUE@BUILD_MULTISUBDIR = $(builddir)$(MULTISUBDIR)
|
||||
toollib_DATA = $(CRT0) $(CRT1)
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include "acle-compat.h"
|
||||
#include "arm-acle-compat.h"
|
||||
|
||||
/* NOTE: This ifdef MUST match the one in aeabi_memcpy.c. */
|
||||
#if defined (__ARM_ARCH_7A__) && defined (__ARM_FEATURE_UNALIGNED) && \
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include "acle-compat.h"
|
||||
#include "arm-acle-compat.h"
|
||||
|
||||
.thumb
|
||||
.syntax unified
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include "acle-compat.h"
|
||||
#include "arm-acle-compat.h"
|
||||
|
||||
.thumb
|
||||
.syntax unified
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
#ifndef ARM_ASM__H
|
||||
#define ARM_ASM__H
|
||||
|
||||
#include "acle-compat.h"
|
||||
#include "arm-acle-compat.h"
|
||||
|
||||
#if __ARM_ARCH >= 7 && defined (__ARM_ARCH_ISA_ARM)
|
||||
# define _ISA_ARM_7
|
||||
|
|
|
@ -1,182 +0,0 @@
|
|||
/*
|
||||
* Copyright (c) 2014 ARM Ltd
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. The name of the company may not be used to endorse or promote
|
||||
* products derived from this software without specific prior written
|
||||
* permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
||||
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef __ARM_ARCH
|
||||
|
||||
/* ACLE standardises a set of pre-defines that describe the ARM architecture.
|
||||
These were mostly implemented in GCC around GCC-4.8; older versions
|
||||
have no, or only partial support. To provide a level of backwards
|
||||
compatibility we try to work out what the definitions should be, given
|
||||
the older pre-defines that GCC did produce. This isn't complete, but
|
||||
it should be enough for use by routines that depend on this header. */
|
||||
|
||||
/* No need to handle ARMv8, GCC had ACLE support before that. */
|
||||
|
||||
# ifdef __ARM_ARCH_7__
|
||||
/* The common subset of ARMv7 in all profiles. */
|
||||
# define __ARM_ARCH 7
|
||||
# define __ARM_ARCH_ISA_THUMB 2
|
||||
# define __ARM_FEATURE_CLZ
|
||||
# define __ARM_FEATURE_LDREX 7
|
||||
# define __ARM_FEATURE_UNALIGNED
|
||||
# endif
|
||||
|
||||
# if defined (__ARM_ARCH_7A__) || defined (__ARM_ARCH_7R__)
|
||||
# define __ARM_ARCH 7
|
||||
# define __ARM_ARCH_ISA_THUMB 2
|
||||
# define __ARM_ARCH_ISA_ARM
|
||||
# define __ARM_FEATURE_CLZ
|
||||
# define __ARM_FEATURE_SIMD32
|
||||
# define __ARM_FEATURE_DSP
|
||||
# define __ARM_FEATURE_QBIT
|
||||
# define __ARM_FEATURE_SAT
|
||||
# define __ARM_FEATURE_LDREX 15
|
||||
# define __ARM_FEATURE_UNALIGNED
|
||||
# ifdef __ARM_ARCH_7A__
|
||||
# define __ARM_ARCH_PROFILE 'A'
|
||||
# else
|
||||
# define __ARM_ARCH_PROFILE 'R'
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifdef __ARM_ARCH_7EM__
|
||||
# define __ARM_ARCH 7
|
||||
# define __ARM_ARCH_ISA_THUMB 2
|
||||
# define __ARM_FEATURE_CLZ
|
||||
# define __ARM_FEATURE_SIMD32
|
||||
# define __ARM_FEATURE_DSP
|
||||
# define __ARM_FEATURE_QBIT
|
||||
# define __ARM_FEATURE_SAT
|
||||
# define __ARM_FEATURE_LDREX 7
|
||||
# define __ARM_FEATURE_UNALIGNED
|
||||
# define __ARM_ARCH_PROFILE 'M'
|
||||
# endif
|
||||
|
||||
# ifdef __ARM_ARCH_7M__
|
||||
# define __ARM_ARCH 7
|
||||
# define __ARM_ARCH_ISA_THUMB 2
|
||||
# define __ARM_FEATURE_CLZ
|
||||
# define __ARM_FEATURE_QBIT
|
||||
# define __ARM_FEATURE_SAT
|
||||
# define __ARM_FEATURE_LDREX 7
|
||||
# define __ARM_FEATURE_UNALIGNED
|
||||
# define __ARM_ARCH_PROFILE 'M'
|
||||
# endif
|
||||
|
||||
# ifdef __ARM_ARCH_6T2__
|
||||
# define __ARM_ARCH 6
|
||||
# define __ARM_ARCH_ISA_THUMB 2
|
||||
# define __ARM_ARCH_ISA_ARM
|
||||
# define __ARM_FEATURE_CLZ
|
||||
# define __ARM_FEATURE_SIMD32
|
||||
# define __ARM_FEATURE_DSP
|
||||
# define __ARM_FEATURE_QBIT
|
||||
# define __ARM_FEATURE_SAT
|
||||
# define __ARM_FEATURE_LDREX 4
|
||||
# define __ARM_FEATURE_UNALIGNED
|
||||
# endif
|
||||
|
||||
# ifdef __ARM_ARCH_6M__
|
||||
# define __ARM_ARCH 6
|
||||
# define __ARM_ARCH_ISA_THUMB 1
|
||||
# define __ARM_ARCH_PROFILE 'M'
|
||||
# endif
|
||||
|
||||
# if defined (__ARM_ARCH_6__) || defined (__ARM_ARCH_6J__) \
|
||||
|| defined (__ARM_ARCH_6K__) || defined (__ARM_ARCH_6Z__) \
|
||||
|| defined (__ARM_ARCH_6ZK__)
|
||||
# define __ARM_ARCH 6
|
||||
# define __ARM_ARCH_ISA_THUMB 1
|
||||
# define __ARM_ARCH_ISA_ARM
|
||||
# define __ARM_FEATURE_CLZ
|
||||
# define __ARM_FEATURE_SIMD32
|
||||
# define __ARM_FEATURE_DSP
|
||||
# define __ARM_FEATURE_QBIT
|
||||
# define __ARM_FEATURE_SAT
|
||||
# define __ARM_FEATURE_UNALIGNED
|
||||
# ifndef __thumb__
|
||||
# if defined (__ARM_ARCH_6K__) || defined (__ARM_ARCH_6ZK__)
|
||||
# define __ARM_FEATURE_LDREX 15
|
||||
# else
|
||||
# define __ARM_FEATURE_LDREX 4
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if defined (__ARM_ARCH_5TE__) || defined (__ARM_ARCH_5E__)
|
||||
# define __ARM_ARCH 5
|
||||
# define __ARM_ARCH_ISA_ARM
|
||||
# ifdef __ARM_ARCH_5TE__
|
||||
# define __ARM_ARCH_ISA_THUMB 1
|
||||
# endif
|
||||
# define __ARM_FEATURE_CLZ
|
||||
# define __ARM_FEATURE_DSP
|
||||
# endif
|
||||
|
||||
# if defined (__ARM_ARCH_5T__) || defined (__ARM_ARCH_5__)
|
||||
# define __ARM_ARCH 5
|
||||
# define __ARM_ARCH_ISA_ARM
|
||||
# ifdef __ARM_ARCH_5TE__
|
||||
# define __ARM_ARCH_ISA_THUMB 1
|
||||
# endif
|
||||
# define __ARM_FEATURE_CLZ
|
||||
# endif
|
||||
|
||||
# ifdef __ARM_ARCH_4T__
|
||||
# define __ARM_ARCH 4
|
||||
# define __ARM_ARCH_ISA_ARM
|
||||
# define __ARM_ARCH_ISA_THUMB 1
|
||||
# endif
|
||||
|
||||
# ifdef __ARM_ARCH_4__
|
||||
# define __ARM_ARCH 4
|
||||
# define __ARM_ARCH_ISA_ARM
|
||||
# endif
|
||||
|
||||
# if defined (__ARM_ARCH_3__) || defined (__ARM_ARCH_3M__)
|
||||
# define __ARM_ARCH 3
|
||||
# define __ARM_ARCH_ISA_ARM
|
||||
# endif
|
||||
|
||||
# ifdef __ARM_ARCH_2__
|
||||
# define __ARM_ARCH 2
|
||||
# define __ARM_ARCH_ISA_ARM
|
||||
# endif
|
||||
|
||||
# ifdef __ARMEB__
|
||||
# define __ARM_BIG_ENDIAN
|
||||
# endif
|
||||
|
||||
/* If we still don't know what the target architecture is, then we're
|
||||
probably not using GCC. */
|
||||
# ifndef __ARM_ARCH
|
||||
# error Unable to determine architecture version.
|
||||
# endif
|
||||
|
||||
#endif /* __ARM_ARCH */
|
||||
|
|
@ -27,7 +27,7 @@
|
|||
/* The structure of the following #if #else #endif conditional chain
|
||||
must match the chain in memchr.S. */
|
||||
|
||||
#include "acle-compat.h"
|
||||
#include "arm-acle-compat.h"
|
||||
|
||||
#if defined (__ARM_NEON__) || defined (__ARM_NEON)
|
||||
/* Defined in memchr.S. */
|
||||
|
|
|
@ -75,7 +75,7 @@
|
|||
|
||||
.syntax unified
|
||||
|
||||
#include "acle-compat.h"
|
||||
#include "arm-acle-compat.h"
|
||||
#include "arm_asm.h"
|
||||
|
||||
@ NOTE: This ifdef MUST match the one in memchr-stub.c
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
/* The structure of the following #if #else #endif conditional chain
|
||||
must match the chain in memcpy.S. */
|
||||
|
||||
#include "acle-compat.h"
|
||||
#include "arm-acle-compat.h"
|
||||
|
||||
#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED))
|
||||
# include "../../string/memcpy.c"
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
/* The structure of the following #if #else #endif conditional chain
|
||||
must match the chain in memcpy-stub.c. */
|
||||
|
||||
#include "acle-compat.h"
|
||||
#include "arm-acle-compat.h"
|
||||
|
||||
#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)
|
||||
/* Defined in memcpy-stub.c. */
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
Nick Clifton, Cygnus Solutions, 13 June 1997. */
|
||||
|
||||
#include "acle-compat.h"
|
||||
#include "arm-acle-compat.h"
|
||||
|
||||
/* ANSI concatenation macros. */
|
||||
#define CONCAT(a, b) CONCAT2(a, b)
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
|
||||
/* Wrapper for the various implementations of strcmp. */
|
||||
|
||||
#include "acle-compat.h"
|
||||
#include "arm-acle-compat.h"
|
||||
|
||||
#ifdef __ARM_BIG_ENDIAN
|
||||
#define S2LO lsl
|
||||
|
|
|
@ -58,7 +58,7 @@
|
|||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
|
||||
|
||||
#include "acle-compat.h"
|
||||
#include "arm-acle-compat.h"
|
||||
#include "arm_asm.h"
|
||||
|
||||
.macro def_fn f p2align=0
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
|
||||
|
||||
#include "acle-compat.h"
|
||||
#include "arm-acle-compat.h"
|
||||
#include "arm_asm.h"
|
||||
|
||||
.macro def_fn f p2align=0
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
|
||||
|
||||
#include "acle-compat.h"
|
||||
#include "arm-acle-compat.h"
|
||||
|
||||
#if defined __OPTIMIZE_SIZE__ || defined PREFER_SIZE_OVER_SPEED
|
||||
#if __ARM_ARCH_ISA_THUMB == 2
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
#ifndef _LIBGLOSS_ARM_H
|
||||
#define _LIBGLOSS_ARM_H
|
||||
|
||||
#include "acle-compat.h"
|
||||
#include "arm-acle-compat.h"
|
||||
|
||||
/* Checking for targets supporting only Thumb instructions (eg. ARMv6-M) or
|
||||
supporting Thumb-2 instructions, whether ARM instructions are available or
|
||||
|
|
Loading…
Reference in New Issue