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:
Mike Frysinger 2022-12-14 03:20:32 -05:00
parent 31e5ce10db
commit 26f9cfd7a8
23 changed files with 25 additions and 203 deletions

View File

@ -11,6 +11,7 @@ PHONY =
SUBDIRS = @subdirs@ . SUBDIRS = @subdirs@ .
srcroot = $(top_srcdir)/..
tooldir = $(exec_prefix)/$(target_alias) tooldir = $(exec_prefix)/$(target_alias)
multilibtooldir = $(tooldir)/lib$(MULTISUBDIR) multilibtooldir = $(tooldir)/lib$(MULTISUBDIR)
@ -23,6 +24,8 @@ includetool_DATA =
includesystooldir = $(tooldir)/include/sys includesystooldir = $(tooldir)/include/sys
includesystool_DATA = includesystool_DATA =
AM_CPPFLAGS = -idirafter $(srcroot)/include
# A fake library so automake will generate rules for plain objects that we want # A fake library so automake will generate rules for plain objects that we want
# to install (e.g. our crt0.o objects). # to install (e.g. our crt0.o objects).
noinst_LIBRARIES = libobjs.a noinst_LIBRARIES = libobjs.a

View File

@ -657,6 +657,7 @@ info_TEXINFOS = $(am__append_1)
CLEANFILES = $(am__append_4) CLEANFILES = $(am__append_4)
PHONY = PHONY =
SUBDIRS = @subdirs@ . SUBDIRS = @subdirs@ .
srcroot = $(top_srcdir)/..
tooldir = $(exec_prefix)/$(target_alias) tooldir = $(exec_prefix)/$(target_alias)
multilibtooldir = $(tooldir)/lib$(MULTISUBDIR) multilibtooldir = $(tooldir)/lib$(MULTISUBDIR)
multilibtool_DATA = $(am__append_3) $(am__append_7) $(am__append_9) \ multilibtool_DATA = $(am__append_3) $(am__append_7) $(am__append_9) \
@ -669,6 +670,7 @@ includetooldir = $(tooldir)/include
includetool_DATA = $(am__append_10) includetool_DATA = $(am__append_10)
includesystooldir = $(tooldir)/include/sys includesystooldir = $(tooldir)/include/sys
includesystool_DATA = $(am__append_11) includesystool_DATA = $(am__append_11)
AM_CPPFLAGS = -idirafter $(srcroot)/include
# A fake library so automake will generate rules for plain objects that we want # A fake library so automake will generate rules for plain objects that we want
# to install (e.g. our crt0.o objects). # to install (e.g. our crt0.o objects).

View File

@ -97,8 +97,6 @@ IQ80310_INSTALL = install-iq80310
# Host specific makefile fragment comes in here. # Host specific makefile fragment comes in here.
@host_makefile_frag@ @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 # 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. # it to link is a good test, so we ignore all the errors for now.

View File

@ -29,7 +29,7 @@
#ifndef _LIBGLOSS_ARM_H #ifndef _LIBGLOSS_ARM_H
#define _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 /* Checking for targets supporting only Thumb instructions (eg. ARMv6-M) or
supporting Thumb-2 instructions, whether ARM instructions are available or supporting Thumb-2 instructions, whether ARM instructions are available or

View File

@ -1,7 +1,7 @@
NEWLIB_CFLAGS = `if [ -d ${objroot}/newlib ]; then echo -I${objroot}/newlib/targ-include -I${srcroot}/newlib/libc/include; fi` 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` 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 # Note that when building the library, ${MULTILIB} is not the way multilib
# options are passed; they're passed in $(CFLAGS). # options are passed; they're passed in $(CFLAGS).
CFLAGS_FOR_TARGET = -O2 -g ${MULTILIB} ${INCLUDES} ${NEWLIB_CFLAGS} CFLAGS_FOR_TARGET = -O2 -g ${MULTILIB} ${INCLUDES} ${NEWLIB_CFLAGS}

View File

@ -63,13 +63,14 @@ AM_MAKEFLAGS = \
FLAGS_TO_PASS=$(AM_MAKEFLAGS) FLAGS_TO_PASS=$(AM_MAKEFLAGS)
srcroot = $(top_srcdir)/..
tooldir = $(exec_prefix)/$(host_alias) tooldir = $(exec_prefix)/$(host_alias)
toollibdir = $(tooldir)/lib$(MULTISUBDIR) toollibdir = $(tooldir)/lib$(MULTISUBDIR)
# These are useful for standalone object files like crt0.o. # These are useful for standalone object files like crt0.o.
AM_CFLAGS = $(AM_CFLAGS_$(subst /,_,$(@D))) $(AM_CFLAGS_$(subst /,_,$(@D)_$(<F))) AM_CFLAGS = $(AM_CFLAGS_$(subst /,_,$(@D))) $(AM_CFLAGS_$(subst /,_,$(@D)_$(<F)))
AM_CCASFLAGS = $(AM_CCASFLAGS_$(subst /,_,$(@D))) $(AM_CCASFLAGS_$(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 \ toollib_LIBRARIES = libm.a \
libc.a libc.a

View File

@ -3677,7 +3677,6 @@ pdfdir = @pdfdir@
prefix = @prefix@ prefix = @prefix@
program_transform_name = @program_transform_name@ program_transform_name = @program_transform_name@
psdir = @psdir@ psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@ sbindir = @sbindir@
shared_machine_dir = @shared_machine_dir@ shared_machine_dir = @shared_machine_dir@
sharedstatedir = @sharedstatedir@ sharedstatedir = @sharedstatedir@
@ -3751,13 +3750,14 @@ AM_MAKEFLAGS = \
"DESTDIR=$(DESTDIR)" "DESTDIR=$(DESTDIR)"
FLAGS_TO_PASS = $(AM_MAKEFLAGS) FLAGS_TO_PASS = $(AM_MAKEFLAGS)
srcroot = $(top_srcdir)/..
tooldir = $(exec_prefix)/$(host_alias) tooldir = $(exec_prefix)/$(host_alias)
toollibdir = $(tooldir)/lib$(MULTISUBDIR) toollibdir = $(tooldir)/lib$(MULTISUBDIR)
# These are useful for standalone object files like crt0.o. # These are useful for standalone object files like crt0.o.
AM_CFLAGS = $(AM_CFLAGS_$(subst /,_,$(@D))) $(AM_CFLAGS_$(subst /,_,$(@D)_$(<F))) AM_CFLAGS = $(AM_CFLAGS_$(subst /,_,$(@D))) $(AM_CFLAGS_$(subst /,_,$(@D)_$(<F)))
AM_CCASFLAGS = $(AM_CCASFLAGS_$(subst /,_,$(@D))) $(AM_CCASFLAGS_$(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) toollib_LIBRARIES = libm.a libc.a $(am__append_72)
@HAVE_MULTISUBDIR_TRUE@BUILD_MULTISUBDIR = $(builddir)$(MULTISUBDIR) @HAVE_MULTISUBDIR_TRUE@BUILD_MULTISUBDIR = $(builddir)$(MULTISUBDIR)
toollib_DATA = $(CRT0) $(CRT1) toollib_DATA = $(CRT0) $(CRT1)

View File

@ -26,7 +26,7 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * 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. */ /* NOTE: This ifdef MUST match the one in aeabi_memcpy.c. */
#if defined (__ARM_ARCH_7A__) && defined (__ARM_FEATURE_UNALIGNED) && \ #if defined (__ARM_ARCH_7A__) && defined (__ARM_FEATURE_UNALIGNED) && \

View File

@ -26,7 +26,7 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#include "acle-compat.h" #include "arm-acle-compat.h"
.thumb .thumb
.syntax unified .syntax unified

View File

@ -26,7 +26,7 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#include "acle-compat.h" #include "arm-acle-compat.h"
.thumb .thumb
.syntax unified .syntax unified

View File

@ -29,7 +29,7 @@
#ifndef ARM_ASM__H #ifndef ARM_ASM__H
#define 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) #if __ARM_ARCH >= 7 && defined (__ARM_ARCH_ISA_ARM)
# define _ISA_ARM_7 # define _ISA_ARM_7

View File

@ -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 */

View File

@ -27,7 +27,7 @@
/* The structure of the following #if #else #endif conditional chain /* The structure of the following #if #else #endif conditional chain
must match the chain in memchr.S. */ must match the chain in memchr.S. */
#include "acle-compat.h" #include "arm-acle-compat.h"
#if defined (__ARM_NEON__) || defined (__ARM_NEON) #if defined (__ARM_NEON__) || defined (__ARM_NEON)
/* Defined in memchr.S. */ /* Defined in memchr.S. */

View File

@ -75,7 +75,7 @@
.syntax unified .syntax unified
#include "acle-compat.h" #include "arm-acle-compat.h"
#include "arm_asm.h" #include "arm_asm.h"
@ NOTE: This ifdef MUST match the one in memchr-stub.c @ NOTE: This ifdef MUST match the one in memchr-stub.c

View File

@ -27,7 +27,7 @@
/* The structure of the following #if #else #endif conditional chain /* The structure of the following #if #else #endif conditional chain
must match the chain in memcpy.S. */ 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)) #if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED))
# include "../../string/memcpy.c" # include "../../string/memcpy.c"

View File

@ -29,7 +29,7 @@
/* The structure of the following #if #else #endif conditional chain /* The structure of the following #if #else #endif conditional chain
must match the chain in memcpy-stub.c. */ 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) #if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)
/* Defined in memcpy-stub.c. */ /* Defined in memcpy-stub.c. */

View File

@ -2,7 +2,7 @@
Nick Clifton, Cygnus Solutions, 13 June 1997. */ Nick Clifton, Cygnus Solutions, 13 June 1997. */
#include "acle-compat.h" #include "arm-acle-compat.h"
/* ANSI concatenation macros. */ /* ANSI concatenation macros. */
#define CONCAT(a, b) CONCAT2(a, b) #define CONCAT(a, b) CONCAT2(a, b)

View File

@ -28,7 +28,7 @@
/* Wrapper for the various implementations of strcmp. */ /* Wrapper for the various implementations of strcmp. */
#include "acle-compat.h" #include "arm-acle-compat.h"
#ifdef __ARM_BIG_ENDIAN #ifdef __ARM_BIG_ENDIAN
#define S2LO lsl #define S2LO lsl

View File

@ -58,7 +58,7 @@
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ 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" #include "arm_asm.h"
.macro def_fn f p2align=0 .macro def_fn f p2align=0

View File

@ -24,7 +24,7 @@
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ 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" #include "arm_asm.h"
.macro def_fn f p2align=0 .macro def_fn f p2align=0

View File

@ -24,7 +24,7 @@
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ 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 defined __OPTIMIZE_SIZE__ || defined PREFER_SIZE_OVER_SPEED
#if __ARM_ARCH_ISA_THUMB == 2 #if __ARM_ARCH_ISA_THUMB == 2

View File

@ -29,7 +29,7 @@
#ifndef _LIBGLOSS_ARM_H #ifndef _LIBGLOSS_ARM_H
#define _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 /* Checking for targets supporting only Thumb instructions (eg. ARMv6-M) or
supporting Thumb-2 instructions, whether ARM instructions are available or supporting Thumb-2 instructions, whether ARM instructions are available or