Skip to content

Commit 19d562d

Browse files
committed
Fixed build errors with cross-clang compiler
1 parent a910645 commit 19d562d

5 files changed

Lines changed: 19 additions & 9 deletions

File tree

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ CFLAGS+=$(WOLFPSA_CFLAGS)
180180

181181
# Setup default optimizations (for GCC)
182182
ifeq ($(USE_GCC_HEADLESS),1)
183-
CFLAGS+=-Wall -Wextra -Wno-main -ffreestanding -nostartfiles
183+
CFLAGS+=-Wall -Wextra -Wno-main -ffreestanding
184184
CFLAGS+=-ffunction-sections -fdata-sections -fomit-frame-pointer
185185
# Allow unused parameters and functions
186186
CFLAGS+=-Wno-unused-parameter -Wno-unused-function

arch.mk

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,12 @@ endif
134134
ifeq ($(ARCH),ARM)
135135
CROSS_COMPILE?=arm-none-eabi-
136136
CFLAGS+=-DARCH_ARM
137-
CFLAGS+=-mthumb -mlittle-endian -mthumb-interwork
138-
LDFLAGS+=-mthumb -mlittle-endian -mthumb-interwork
137+
CFLAGS+=-mthumb -mlittle-endian
138+
LDFLAGS+=-mthumb -mlittle-endian
139+
ifeq ($(USE_GCC),1)
140+
CFLAGS+=-mthumb-interwork
141+
LDFLAGS+=-mthumb-interwork
142+
endif
139143

140144
## Target specific configuration
141145
ifeq ($(TARGET),samr21)

include/wolfboot/wolfboot.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,11 @@ extern "C" {
4646
#ifndef RAMFUNCTION
4747
# if defined(__WOLFBOOT) && defined(RAM_CODE)
4848
# if defined(ARCH_ARM)
49-
# define RAMFUNCTION __attribute__((used,section(".ramcode"),long_call))
49+
# if defined(__clang__)
50+
# define RAMFUNCTION __attribute__((used,section(".ramcode")))
51+
# else
52+
# define RAMFUNCTION __attribute__((used,section(".ramcode"),long_call))
53+
# endif
5054
# elif defined(ARCH_PPC)
5155
# define RAMFUNCTION __attribute__((used,section(".ramcode"),longcall))
5256
# else

options.mk

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1030,9 +1030,11 @@ CFLAGS+=$(CFLAGS_EXTRA)
10301030
OBJS+=$(OBJS_EXTRA)
10311031

10321032
ifeq ($(USE_GCC_HEADLESS),1)
1033-
ifneq ($(ARCH),RENESAS_RX)
1034-
ifneq ($(ARCH),AURIX_TC3)
1035-
CFLAGS+="-Wstack-usage=$(STACK_USAGE)"
1033+
ifeq ($(USE_GCC),1)
1034+
ifneq ($(ARCH),RENESAS_RX)
1035+
ifneq ($(ARCH),AURIX_TC3)
1036+
CFLAGS+="-Wstack-usage=$(STACK_USAGE)"
1037+
endif
10361038
endif
10371039
endif
10381040
endif

src/update_flash.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -754,7 +754,7 @@ static int wolfBoot_delta_update(struct wolfBoot_image *boot,
754754

755755

756756
#ifdef WOLFBOOT_ARMORED
757-
# ifdef __GNUC__
757+
# if defined(__GNUC__) && !defined(__clang__)
758758
# pragma GCC push_options
759759
# pragma GCC optimize("O0")
760760
# elif defined(__IAR_SYSTEMS_ICC__)
@@ -1474,7 +1474,7 @@ void RAMFUNCTION wolfBoot_start(void)
14741474
}
14751475

14761476
#ifdef WOLFBOOT_ARMORED
1477-
# ifdef __GNUC__
1477+
# if defined(__GNUC__) && !defined(__clang__)
14781478
# pragma GCC pop_options
14791479
# elif defined(__IAR_SYSTEMS_ICC__)
14801480
# pragma optimize=default

0 commit comments

Comments
 (0)