* [Buildroot] [PATCH 0/6] rework arc architecture support
@ 2023-12-31 17:25 Waldemar Brodkorb
2023-12-31 17:25 ` [Buildroot] [PATCH 1/6] package/gcc: remove special arc version Waldemar Brodkorb
` (5 more replies)
0 siblings, 6 replies; 18+ messages in thread
From: Waldemar Brodkorb @ 2023-12-31 17:25 UTC (permalink / raw)
To: buildroot; +Cc: Romain Naour, ARC Maintainers, Giulio Benetti, Thomas Petazzoni
Remove special versions of binutils, gcc and gdb as the upstream
versions of these main toolchain components working fine for ARCv1 and
ARCv2. Add new config for Qemu ARC. Update snps_arc700_nsim and
snps_archs38_hsdk defconfigs to use latest stable Linux Kernel.
snps_arc700_nsim is ARCv1 and only works with uClibc-ng, glibc is not
supported without patching.
I can not runtime test the other ARC defconfigs myself so I left them
untouched for now.
Waldemar Brodkorb (6):
package/gcc: remove special arc version
package/binutils: remove special arc version
package/gdb: remove special arc version
configs/qemu: add qemu_arc_defconfig
configs/snps_arc700_nsim_defconfig: update kernel
configs/snps_archs38_hsdk_defconfig: update kernel
board/qemu/arc/linux.config | 32 ++
board/qemu/arc/readme.txt | 8 +
board/synopsys/nsim/readme.txt | 2 +-
configs/qemu_arc_defconfig | 30 ++
configs/snps_arc700_nsim_defconfig | 9 +-
configs/snps_archs38_hsdk_defconfig | 4 +-
package/binutils/Config.in.host | 9 +-
.../0001-poison-system-directories.patch | 310 ------------------
package/binutils/binutils.hash | 3 -
package/binutils/binutils.mk | 10 -
package/gcc/Config.in.host | 9 -
.../0001-arc-Refurbish-adc-sbc-patterns.patch | 243 --------------
...er-Remove-cyclades-from-libsanitizer.patch | 121 -------
...-machine-names-in-__has_include-.-PR.patch | 124 -------
.../0100-uclibc-conf.patch | 29 --
package/gcc/gcc.hash | 2 -
package/gcc/gcc.mk | 5 -
package/gdb/Config.in.host | 3 -
...t-define-basic_string_view-to_string.patch | 114 -------
package/gdb/gdb.hash | 3 -
package/gdb/gdb.mk | 23 +-
21 files changed, 82 insertions(+), 1011 deletions(-)
create mode 100644 board/qemu/arc/linux.config
create mode 100644 board/qemu/arc/readme.txt
create mode 100644 configs/qemu_arc_defconfig
delete mode 100644 package/binutils/arc-2020.09-release/0001-poison-system-directories.patch
delete mode 100644 package/gcc/arc-2020.09-release/0001-arc-Refurbish-adc-sbc-patterns.patch
delete mode 100644 package/gcc/arc-2020.09-release/0002-libsanitizer-Remove-cyclades-from-libsanitizer.patch
delete mode 100644 package/gcc/arc-2020.09-release/0003-fixinc-don-t-fix-machine-names-in-__has_include-.-PR.patch
delete mode 100644 package/gcc/arc-2020.09-release/0100-uclibc-conf.patch
delete mode 100644 package/gdb/arc-2020.09-release-gdb/0001-Do-not-define-basic_string_view-to_string.patch
--
2.30.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Buildroot] [PATCH 1/6] package/gcc: remove special arc version
2023-12-31 17:25 [Buildroot] [PATCH 0/6] rework arc architecture support Waldemar Brodkorb
@ 2023-12-31 17:25 ` Waldemar Brodkorb
2023-12-31 20:02 ` Yann E. MORIN
2023-12-31 20:13 ` [Buildroot] " Yann E. MORIN
2023-12-31 17:25 ` [Buildroot] [PATCH 2/6] package/binutils: " Waldemar Brodkorb
` (4 subsequent siblings)
5 siblings, 2 replies; 18+ messages in thread
From: Waldemar Brodkorb @ 2023-12-31 17:25 UTC (permalink / raw)
To: buildroot; +Cc: Romain Naour, ARC Maintainers, Giulio Benetti, Thomas Petazzoni
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
---
package/gcc/Config.in.host | 9 -
.../0001-arc-Refurbish-adc-sbc-patterns.patch | 243 ------------------
...er-Remove-cyclades-from-libsanitizer.patch | 121 ---------
...-machine-names-in-__has_include-.-PR.patch | 124 ---------
.../0100-uclibc-conf.patch | 29 ---
package/gcc/gcc.hash | 2 -
package/gcc/gcc.mk | 5 -
7 files changed, 533 deletions(-)
delete mode 100644 package/gcc/arc-2020.09-release/0001-arc-Refurbish-adc-sbc-patterns.patch
delete mode 100644 package/gcc/arc-2020.09-release/0002-libsanitizer-Remove-cyclades-from-libsanitizer.patch
delete mode 100644 package/gcc/arc-2020.09-release/0003-fixinc-don-t-fix-machine-names-in-__has_include-.-PR.patch
delete mode 100644 package/gcc/arc-2020.09-release/0100-uclibc-conf.patch
diff --git a/package/gcc/Config.in.host b/package/gcc/Config.in.host
index fd721088ec..db6f378d6a 100644
--- a/package/gcc/Config.in.host
+++ b/package/gcc/Config.in.host
@@ -2,19 +2,11 @@ comment "GCC Options"
choice
prompt "GCC compiler Version"
- default BR2_GCC_VERSION_ARC if BR2_GCC_VERSION_4_8_ARC # legacy
- default BR2_GCC_VERSION_ARC if BR2_arc
default BR2_GCC_VERSION_POWERPC_SPE if BR2_POWERPC_CPU_HAS_SPE
default BR2_GCC_VERSION_12_X
help
Select the version of gcc you wish to use.
-config BR2_GCC_VERSION_ARC
- bool "gcc arc (10.x)"
- # Only supported architecture
- depends on BR2_arc
- select BR2_TOOLCHAIN_GCC_AT_LEAST_10
-
config BR2_GCC_VERSION_POWERPC_SPE
bool "gcc powerpc spe"
# powerpc spe support has been deprecated since gcc 8.x.
@@ -81,7 +73,6 @@ config BR2_GCC_VERSION
default "11.4.0" if BR2_GCC_VERSION_11_X
default "12.3.0" if BR2_GCC_VERSION_12_X
default "13.2.0" if BR2_GCC_VERSION_13_X
- default "arc-2020.09-release" if BR2_GCC_VERSION_ARC
config BR2_EXTRA_GCC_CONFIG_OPTIONS
string "Additional gcc options"
diff --git a/package/gcc/arc-2020.09-release/0001-arc-Refurbish-adc-sbc-patterns.patch b/package/gcc/arc-2020.09-release/0001-arc-Refurbish-adc-sbc-patterns.patch
deleted file mode 100644
index 3292b26a4e..0000000000
--- a/package/gcc/arc-2020.09-release/0001-arc-Refurbish-adc-sbc-patterns.patch
+++ /dev/null
@@ -1,243 +0,0 @@
-From b92c22b144d063c4436a6693045ceb57d344c495 Mon Sep 17 00:00:00 2001
-From: Claudiu Zissulescu <claziss@synopsys.com>
-Date: Wed, 11 Nov 2020 12:31:10 +0200
-Subject: [PATCH] arc: Refurbish adc/sbc patterns
-
-The adc/sbc patterns were unecessary spliting, remove that and
-associated functions.
-
-gcc/ChangeLog:
-
-2020-10-11 Claudiu Zissulescu <claziss@synopsys.com>
-
- * config/arc/arc-protos.h (arc_scheduling_not_expected): Remove
- it.
- (arc_sets_cc_p): Likewise.
- (arc_need_delay): Likewise.
- * config/arc/arc.c (arc_sets_cc_p): Likewise.
- (arc_need_delay): Likewise.
- (arc_scheduling_not_expected): Likewise.
- * config/arc/arc.md: Convert adc/sbc patterns to simple
- instruction definitions.
-
-Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com>
-
-Downloaded from upstream commit
-https://github.com/foss-for-synopsys-dwc-arc-processors/gcc/commit/b92c22b144d063c4436a6693045ceb57d344c495
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
----
- gcc/config/arc/arc-protos.h | 3 --
- gcc/config/arc/arc.c | 53 ---------------------
- gcc/config/arc/arc.md | 95 +++++++++++--------------------------
- 3 files changed, 29 insertions(+), 122 deletions(-)
-
-diff --git a/gcc/config/arc/arc-protos.h b/gcc/config/arc/arc-protos.h
-index c72d78e3b9e..de4cf47c818 100644
---- a/gcc/config/arc/arc-protos.h
-+++ b/gcc/config/arc/arc-protos.h
-@@ -90,10 +90,7 @@ extern void split_subsi (rtx *);
- extern void arc_split_move (rtx *);
- extern const char *arc_short_long (rtx_insn *insn, const char *, const char *);
- extern rtx arc_regno_use_in (unsigned int, rtx);
--extern bool arc_scheduling_not_expected (void);
--extern bool arc_sets_cc_p (rtx_insn *insn);
- extern int arc_label_align (rtx_insn *label);
--extern bool arc_need_delay (rtx_insn *insn);
- extern bool arc_text_label (rtx_insn *insn);
-
- extern bool arc_short_comparison_p (rtx, int);
-diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c
-index 5a7b0cb6696..c3ee9181f93 100644
---- a/gcc/config/arc/arc.c
-+++ b/gcc/config/arc/arc.c
-@@ -10341,59 +10341,6 @@ arc_attr_type (rtx_insn *insn)
- return get_attr_type (insn);
- }
-
--/* Return true if insn sets the condition codes. */
--
--bool
--arc_sets_cc_p (rtx_insn *insn)
--{
-- if (NONJUMP_INSN_P (insn))
-- if (rtx_sequence *seq = dyn_cast <rtx_sequence *> (PATTERN (insn)))
-- insn = seq->insn (seq->len () - 1);
-- return arc_attr_type (insn) == TYPE_COMPARE;
--}
--
--/* Return true if INSN is an instruction with a delay slot we may want
-- to fill. */
--
--bool
--arc_need_delay (rtx_insn *insn)
--{
-- rtx_insn *next;
--
-- if (!flag_delayed_branch)
-- return false;
-- /* The return at the end of a function needs a delay slot. */
-- if (NONJUMP_INSN_P (insn) && GET_CODE (PATTERN (insn)) == USE
-- && (!(next = next_active_insn (insn))
-- || ((!NONJUMP_INSN_P (next) || GET_CODE (PATTERN (next)) != SEQUENCE)
-- && arc_attr_type (next) == TYPE_RETURN))
-- && (!TARGET_PAD_RETURN
-- || (prev_active_insn (insn)
-- && prev_active_insn (prev_active_insn (insn))
-- && prev_active_insn (prev_active_insn (prev_active_insn (insn))))))
-- return true;
-- if (NONJUMP_INSN_P (insn)
-- ? (GET_CODE (PATTERN (insn)) == USE
-- || GET_CODE (PATTERN (insn)) == CLOBBER
-- || GET_CODE (PATTERN (insn)) == SEQUENCE)
-- : JUMP_P (insn)
-- ? (GET_CODE (PATTERN (insn)) == ADDR_VEC
-- || GET_CODE (PATTERN (insn)) == ADDR_DIFF_VEC)
-- : !CALL_P (insn))
-- return false;
-- return num_delay_slots (insn) != 0;
--}
--
--/* Return true if the scheduling pass(es) has/have already run,
-- i.e. where possible, we should try to mitigate high latencies
-- by different instruction selection. */
--
--bool
--arc_scheduling_not_expected (void)
--{
-- return cfun->machine->arc_reorg_started;
--}
--
- /* Code has a minimum p2 alignment of 1, which we must restore after
- an ADDR_DIFF_VEC. */
-
-diff --git a/gcc/config/arc/arc.md b/gcc/config/arc/arc.md
-index f91adbc0d94..c635b69ddd5 100644
---- a/gcc/config/arc/arc.md
-+++ b/gcc/config/arc/arc.md
-@@ -2847,43 +2847,25 @@ archs4x, archs4xd"
- (set_attr "type" "compare")
- (set_attr "length" "4,4,8")])
-
--; w/c/c comes first (rather than w/0/C_0) to prevent the middle-end
--; needlessly prioritizing the matching constraint.
--; Rcw/0/C_0 comes before w/c/L so that the lower latency conditional
--; execution is used where possible.
--(define_insn_and_split "adc"
-- [(set (match_operand:SI 0 "dest_reg_operand" "=w,Rcw,w,Rcw,w")
-- (plus:SI (plus:SI (ltu:SI (reg:CC_C CC_REG) (const_int 0))
-- (match_operand:SI 1 "nonmemory_operand"
-- "%c,0,c,0,cCal"))
-- (match_operand:SI 2 "nonmemory_operand" "c,C_0,L,I,cCal")))]
-+(define_insn "adc"
-+ [(set (match_operand:SI 0 "register_operand" "=r, r,r,r, r,r")
-+ (plus:SI
-+ (plus:SI
-+ (ltu:SI (reg:CC_C CC_REG) (const_int 0))
-+ (match_operand:SI 1 "nonmemory_operand" "%r, 0,r,0,Cal,r"))
-+ (match_operand:SI 2 "nonmemory_operand" "r,C_0,L,I, r,Cal")))]
- "register_operand (operands[1], SImode)
- || register_operand (operands[2], SImode)"
- "@
-- adc %0,%1,%2
-- add.cs %0,%1,1
-- adc %0,%1,%2
-- adc %0,%1,%2
-- adc %0,%1,%2"
-- ; if we have a bad schedule after sched2, split.
-- "reload_completed
-- && !optimize_size && (!TARGET_ARC600_FAMILY)
-- && arc_scheduling_not_expected ()
-- && arc_sets_cc_p (prev_nonnote_insn (insn))
-- /* If next comes a return or other insn that needs a delay slot,
-- expect the adc to get into the delay slot. */
-- && next_nonnote_insn (insn)
-- && !arc_need_delay (next_nonnote_insn (insn))
-- /* Restore operands before emitting. */
-- && (extract_insn_cached (insn), 1)"
-- [(set (match_dup 0) (match_dup 3))
-- (cond_exec
-- (ltu (reg:CC_C CC_REG) (const_int 0))
-- (set (match_dup 0) (plus:SI (match_dup 0) (const_int 1))))]
-- "operands[3] = simplify_gen_binary (PLUS, SImode, operands[1], operands[2]);"
-+ adc\\t%0,%1,%2
-+ add.cs\\t%0,%1,1
-+ adc\\t%0,%1,%2
-+ adc\\t%0,%1,%2
-+ adc\\t%0,%1,%2
-+ adc\\t%0,%1,%2"
- [(set_attr "cond" "use")
- (set_attr "type" "cc_arith")
-- (set_attr "length" "4,4,4,4,8")])
-+ (set_attr "length" "4,4,4,4,8,8")])
-
- ; combiner-splitter cmp / scc -> cmp / adc
- (define_split
-@@ -3015,7 +2997,7 @@ archs4x, archs4xd"
- DONE;
- }
- emit_insn (gen_sub_f (l0, l1, l2));
-- emit_insn (gen_sbc (h0, h1, h2, gen_rtx_REG (CCmode, CC_REG)));
-+ emit_insn (gen_sbc (h0, h1, h2));
- DONE;
- ")
-
-@@ -3030,44 +3012,25 @@ archs4x, archs4xd"
- (set_attr "type" "cc_arith")
- (set_attr "length" "4")])
-
--; w/c/c comes first (rather than Rcw/0/C_0) to prevent the middle-end
--; needlessly prioritizing the matching constraint.
--; Rcw/0/C_0 comes before w/c/L so that the lower latency conditional execution
--; is used where possible.
--(define_insn_and_split "sbc"
-- [(set (match_operand:SI 0 "dest_reg_operand" "=w,Rcw,w,Rcw,w")
-- (minus:SI (minus:SI (match_operand:SI 1 "nonmemory_operand"
-- "c,0,c,0,cCal")
-- (ltu:SI (match_operand:CC_C 3 "cc_use_register")
-- (const_int 0)))
-- (match_operand:SI 2 "nonmemory_operand" "c,C_0,L,I,cCal")))]
-+(define_insn "sbc"
-+ [(set (match_operand:SI 0 "dest_reg_operand" "=r,r,r,r,r,r")
-+ (minus:SI
-+ (minus:SI
-+ (match_operand:SI 1 "nonmemory_operand" "r, 0,r,0, r,Cal")
-+ (ltu:SI (reg:CC_C CC_REG) (const_int 0)))
-+ (match_operand:SI 2 "nonmemory_operand" "r,C_0,L,I,Cal,r")))]
- "register_operand (operands[1], SImode)
- || register_operand (operands[2], SImode)"
- "@
-- sbc %0,%1,%2
-- sub.cs %0,%1,1
-- sbc %0,%1,%2
-- sbc %0,%1,%2
-- sbc %0,%1,%2"
-- ; if we have a bad schedule after sched2, split.
-- "reload_completed
-- && !optimize_size && (!TARGET_ARC600_FAMILY)
-- && arc_scheduling_not_expected ()
-- && arc_sets_cc_p (prev_nonnote_insn (insn))
-- /* If next comes a return or other insn that needs a delay slot,
-- expect the adc to get into the delay slot. */
-- && next_nonnote_insn (insn)
-- && !arc_need_delay (next_nonnote_insn (insn))
-- /* Restore operands before emitting. */
-- && (extract_insn_cached (insn), 1)"
-- [(set (match_dup 0) (match_dup 4))
-- (cond_exec
-- (ltu (reg:CC_C CC_REG) (const_int 0))
-- (set (match_dup 0) (plus:SI (match_dup 0) (const_int -1))))]
-- "operands[4] = simplify_gen_binary (MINUS, SImode, operands[1], operands[2]);"
-+ sbc\\t%0,%1,%2
-+ sub.cs\\t%0,%1,1
-+ sbc\\t%0,%1,%2
-+ sbc\\t%0,%1,%2
-+ sbc\\t%0,%1,%2
-+ sbc\\t%0,%1,%2"
- [(set_attr "cond" "use")
- (set_attr "type" "cc_arith")
-- (set_attr "length" "4,4,4,4,8")])
-+ (set_attr "length" "4,4,4,4,8,8")])
-
- (define_insn "sub_f"
- [(set (reg:CC CC_REG)
diff --git a/package/gcc/arc-2020.09-release/0002-libsanitizer-Remove-cyclades-from-libsanitizer.patch b/package/gcc/arc-2020.09-release/0002-libsanitizer-Remove-cyclades-from-libsanitizer.patch
deleted file mode 100644
index 051d4db341..0000000000
--- a/package/gcc/arc-2020.09-release/0002-libsanitizer-Remove-cyclades-from-libsanitizer.patch
+++ /dev/null
@@ -1,121 +0,0 @@
-From 1557c3d919623a95c2aa090d3018c31401f63f88 Mon Sep 17 00:00:00 2001
-From: Tamar Christina <tamar.christina@arm.com>
-Date: Fri, 21 May 2021 12:16:56 +0100
-Subject: [PATCH] libsanitizer: Remove cyclades from libsanitizer
-
-The Linux kernel has removed the interface to cyclades from
-the latest kernel headers[1] due to them being orphaned for the
-past 13 years.
-
-libsanitizer uses this header when compiling against glibc, but
-glibcs itself doesn't seem to have any references to cyclades.
-
-Further more it seems that the driver is broken in the kernel and
-the firmware doesn't seem to be available anymore.
-
-As such since this is breaking the build of libsanitizer (and so the
-GCC bootstrap[2]) I propose to remove this.
-
-[1] https://lkml.org/lkml/2021/3/2/153
-[2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100379
-
-libsanitizer/ChangeLog:
-
- PR sanitizer/100379
- * sanitizer_common/sanitizer_common_interceptors_ioctl.inc: Cherry-pick
- llvm-project revision f7c5351552387bd43f6ca3631016d7f0dfe0f135.
- * sanitizer_common/sanitizer_platform_limits_posix.cc: Likewise.
- * sanitizer_common/sanitizer_platform_limits_posix.h: Likewise.
----
- .../sanitizer_common_interceptors_ioctl.inc | 9 ---------
- .../sanitizer_platform_limits_posix.cpp | 11 -----------
- .../sanitizer_platform_limits_posix.h | 10 ----------
- 3 files changed, 30 deletions(-)
-
-diff --git a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
-index 490a04b2181..42e43a04441 100644
---- a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
-+++ b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
-@@ -366,15 +366,6 @@ static void ioctl_table_fill() {
-
- #if SANITIZER_LINUX && !SANITIZER_ANDROID
- // _(SIOCDEVPLIP, WRITE, struct_ifreq_sz); // the same as EQL_ENSLAVE
-- _(CYGETDEFTHRESH, WRITE, sizeof(int));
-- _(CYGETDEFTIMEOUT, WRITE, sizeof(int));
-- _(CYGETMON, WRITE, struct_cyclades_monitor_sz);
-- _(CYGETTHRESH, WRITE, sizeof(int));
-- _(CYGETTIMEOUT, WRITE, sizeof(int));
-- _(CYSETDEFTHRESH, NONE, 0);
-- _(CYSETDEFTIMEOUT, NONE, 0);
-- _(CYSETTHRESH, NONE, 0);
-- _(CYSETTIMEOUT, NONE, 0);
- _(EQL_EMANCIPATE, WRITE, struct_ifreq_sz);
- _(EQL_ENSLAVE, WRITE, struct_ifreq_sz);
- _(EQL_GETMASTRCFG, WRITE, struct_ifreq_sz);
-diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
-index aa845df4dde..badf6a401cc 100644
---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
-+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
-@@ -130,7 +130,6 @@ typedef struct user_fpregs elf_fpregset_t;
- # include <sys/procfs.h>
- #endif
- #include <sys/user.h>
--#include <linux/cyclades.h>
- #include <linux/if_eql.h>
- #include <linux/if_plip.h>
- #include <linux/lp.h>
-@@ -443,7 +442,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
-
- #if SANITIZER_LINUX && !SANITIZER_ANDROID
- unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct);
-- unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor);
- #if EV_VERSION > (0x010000)
- unsigned struct_input_keymap_entry_sz = sizeof(struct input_keymap_entry);
- #else
-@@ -809,15 +807,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
- #endif // SANITIZER_LINUX
-
- #if SANITIZER_LINUX && !SANITIZER_ANDROID
-- unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH;
-- unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT;
-- unsigned IOCTL_CYGETMON = CYGETMON;
-- unsigned IOCTL_CYGETTHRESH = CYGETTHRESH;
-- unsigned IOCTL_CYGETTIMEOUT = CYGETTIMEOUT;
-- unsigned IOCTL_CYSETDEFTHRESH = CYSETDEFTHRESH;
-- unsigned IOCTL_CYSETDEFTIMEOUT = CYSETDEFTIMEOUT;
-- unsigned IOCTL_CYSETTHRESH = CYSETTHRESH;
-- unsigned IOCTL_CYSETTIMEOUT = CYSETTIMEOUT;
- unsigned IOCTL_EQL_EMANCIPATE = EQL_EMANCIPATE;
- unsigned IOCTL_EQL_ENSLAVE = EQL_ENSLAVE;
- unsigned IOCTL_EQL_GETMASTRCFG = EQL_GETMASTRCFG;
-diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
-index d82fd5e4005..dc6423bc297 100644
---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
-+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
-@@ -974,7 +974,6 @@ extern unsigned struct_vt_mode_sz;
-
- #if SANITIZER_LINUX && !SANITIZER_ANDROID
- extern unsigned struct_ax25_parms_struct_sz;
--extern unsigned struct_cyclades_monitor_sz;
- extern unsigned struct_input_keymap_entry_sz;
- extern unsigned struct_ipx_config_data_sz;
- extern unsigned struct_kbdiacrs_sz;
-@@ -1319,15 +1318,6 @@ extern unsigned IOCTL_VT_WAITACTIVE;
- #endif // SANITIZER_LINUX
-
- #if SANITIZER_LINUX && !SANITIZER_ANDROID
--extern unsigned IOCTL_CYGETDEFTHRESH;
--extern unsigned IOCTL_CYGETDEFTIMEOUT;
--extern unsigned IOCTL_CYGETMON;
--extern unsigned IOCTL_CYGETTHRESH;
--extern unsigned IOCTL_CYGETTIMEOUT;
--extern unsigned IOCTL_CYSETDEFTHRESH;
--extern unsigned IOCTL_CYSETDEFTIMEOUT;
--extern unsigned IOCTL_CYSETTHRESH;
--extern unsigned IOCTL_CYSETTIMEOUT;
- extern unsigned IOCTL_EQL_EMANCIPATE;
- extern unsigned IOCTL_EQL_ENSLAVE;
- extern unsigned IOCTL_EQL_GETMASTRCFG;
---
-2.31.1
-
diff --git a/package/gcc/arc-2020.09-release/0003-fixinc-don-t-fix-machine-names-in-__has_include-.-PR.patch b/package/gcc/arc-2020.09-release/0003-fixinc-don-t-fix-machine-names-in-__has_include-.-PR.patch
deleted file mode 100644
index 8b6be49e68..0000000000
--- a/package/gcc/arc-2020.09-release/0003-fixinc-don-t-fix-machine-names-in-__has_include-.-PR.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-From 65754c50a57e5a891cee75bb744eb93fdb3c443e Mon Sep 17 00:00:00 2001
-From: Xi Ruoyao <xry111@mengyan1223.wang>
-Date: Mon, 28 Jun 2021 13:54:58 +0800
-Subject: [PATCH] fixinc: don't "fix" machine names in __has_include(...)
- [PR91085]
-
-fixincludes/
-
- PR other/91085
- * fixfixes.c (check_has_inc): New static function.
- (machine_name_fix): Don't replace header names in
- __has_include(...).
- * inclhack.def (machine_name): Adjust test.
- * tests/base/testing.h: Update.
-
-Upstream: 6bf383c37e6131a8e247e8a0997d55d65c830b6d
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
----
- fixincludes/fixfixes.c | 45 ++++++++++++++++++++++++++++++--
- fixincludes/inclhack.def | 3 ++-
- fixincludes/tests/base/testing.h | 2 +-
- 3 files changed, 46 insertions(+), 4 deletions(-)
-
-diff --git a/fixincludes/fixfixes.c b/fixincludes/fixfixes.c
-index 034e15d9985..3ff87812036 100644
---- a/fixincludes/fixfixes.c
-+++ b/fixincludes/fixfixes.c
-@@ -477,6 +477,39 @@ FIX_PROC_HEAD( char_macro_def_fix )
- fputs (text, stdout);
- }
-
-+/* Check if the pattern at pos is actually in a "__has_include(...)"
-+ directive. Return the pointer to the ')' of this
-+ "__has_include(...)" if it is, NULL otherwise. */
-+static const char *
-+check_has_inc (const char *begin, const char *pos, const char *end)
-+{
-+ static const char has_inc[] = "__has_include";
-+ const size_t has_inc_len = sizeof (has_inc) - 1;
-+ const char *p;
-+
-+ for (p = memmem (begin, pos - begin, has_inc, has_inc_len);
-+ p != NULL;
-+ p = memmem (p, pos - p, has_inc, has_inc_len))
-+ {
-+ p += has_inc_len;
-+ while (p < end && ISSPACE (*p))
-+ p++;
-+
-+ /* "__has_include" may appear as "defined(__has_include)",
-+ search for the next appearance then. */
-+ if (*p != '(')
-+ continue;
-+
-+ /* To avoid too much complexity, just hope there is never a
-+ ')' in a header name. */
-+ p = memchr (p, ')', end - p);
-+ if (p == NULL || p > pos)
-+ return p;
-+ }
-+
-+ return NULL;
-+}
-+
- /* Fix for machine name #ifdefs that are not in the namespace reserved
- by the C standard. They won't be defined if compiling with -ansi,
- and the headers will break. We go to some trouble to only change
-@@ -524,7 +557,7 @@ FIX_PROC_HEAD( machine_name_fix )
- /* If the 'name_pat' matches in between base and limit, we have
- a bogon. It is not worth the hassle of excluding comments
- because comments on #if/#ifdef lines are rare, and strings on
-- such lines are illegal.
-+ such lines are only legal in a "__has_include" directive.
-
- REG_NOTBOL means 'base' is not at the beginning of a line, which
- shouldn't matter since the name_re has no ^ anchor, but let's
-@@ -544,8 +577,16 @@ FIX_PROC_HEAD( machine_name_fix )
- break;
-
- p = base + match[0].rm_so;
-- base += match[0].rm_eo;
-
-+ /* Check if the match is in __has_include(...) (PR 91085). */
-+ q = check_has_inc (base, p, limit);
-+ if (q)
-+ {
-+ base = q + 1;
-+ goto again;
-+ }
-+
-+ base += match[0].rm_eo;
- /* One more test: if on the same line we have the same string
- with the appropriate underscores, then leave it alone.
- We want exactly two leading and trailing underscores. */
-diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
-index f58e7771e1c..71bd717c233 100644
---- a/fixincludes/inclhack.def
-+++ b/fixincludes/inclhack.def
-@@ -3114,7 +3114,8 @@ fix = {
- c_fix = machine_name;
-
- test_text = "/* MACH_DIFF: */\n"
-- "#if defined( i386 ) || defined( sparc ) || defined( vax )"
-+ "#if defined( i386 ) || defined( sparc ) || defined( vax ) || "
-+ "defined( linux ) || __has_include ( <linux.h> )"
- "\n/* no uniform test, so be careful :-) */";
- };
-
-diff --git a/fixincludes/tests/base/testing.h b/fixincludes/tests/base/testing.h
-index cf95321fb86..8b3accaf04e 100644
---- a/fixincludes/tests/base/testing.h
-+++ b/fixincludes/tests/base/testing.h
-@@ -64,7 +64,7 @@ BSD43__IOWR('T', 1) /* Some are multi-line */
-
- #if defined( MACHINE_NAME_CHECK )
- /* MACH_DIFF: */
--#if defined( i386 ) || defined( sparc ) || defined( vax )
-+#if defined( i386 ) || defined( sparc ) || defined( vax ) || defined( linux ) || __has_include ( <linux.h> )
- /* no uniform test, so be careful :-) */
- #endif /* MACHINE_NAME_CHECK */
-
---
-2.37.3
-
diff --git a/package/gcc/arc-2020.09-release/0100-uclibc-conf.patch b/package/gcc/arc-2020.09-release/0100-uclibc-conf.patch
deleted file mode 100644
index d354baf81f..0000000000
--- a/package/gcc/arc-2020.09-release/0100-uclibc-conf.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 326b880b20e5f8187dbda736b4c4c662cbfb00ca Mon Sep 17 00:00:00 2001
-From: Romain Naour <romain.naour@gmail.com>
-Date: Tue, 2 May 2017 22:36:15 +0200
-Subject: [PATCH] uclibc-conf
-
-[Romain: convert to git patch]
-Signed-off-by: Romain Naour <romain.naour@gmail.com>
----
- contrib/regression/objs-gcc.sh | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/contrib/regression/objs-gcc.sh b/contrib/regression/objs-gcc.sh
-index 60b0497..6dc7ead 100755
---- a/contrib/regression/objs-gcc.sh
-+++ b/contrib/regression/objs-gcc.sh
-@@ -106,6 +106,10 @@ if [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-gnu ]
- then
- make all-gdb all-dejagnu all-ld || exit 1
- make install-gdb install-dejagnu install-ld || exit 1
-+elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ]
-+ then
-+ make all-gdb all-dejagnu all-ld || exit 1
-+ make install-gdb install-dejagnu install-ld || exit 1
- elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
- make bootstrap || exit 1
- make install || exit 1
---
-2.9.3
-
diff --git a/package/gcc/gcc.hash b/package/gcc/gcc.hash
index 478b0b1620..a2a38a005e 100644
--- a/package/gcc/gcc.hash
+++ b/package/gcc/gcc.hash
@@ -9,8 +9,6 @@ sha512 8fb799dfa2e5de5284edf8f821e3d40c2781e4c570f5adfdb1ca0671fcae3fb7f794ea78
# From https://gcc.gnu.org/pub/gcc/releases/gcc-13.2.0/sha512.sum
sha512 d99e4826a70db04504467e349e9fbaedaa5870766cda7c5cab50cdebedc4be755ebca5b789e1232a34a20be1a0b60097de9280efe47bdb71c73251e30b0862a2 gcc-13.2.0.tar.xz
-# Locally calculated (fetched from Github)
-sha512 b0853e2b1c5998044392023fa653e399e74118c46e616504ac59e1a2cf27620f94434767ce06b6cf4ca3dfb57f81d6eda92752befaf095ea5e564a9181b4659c gcc-arc-2020.09-release.tar.gz
# Locally calculated (fetched from Github)
sha512 2de7cf47333a4092b02d3bb98f4206f14966f1d139a724d09cf3b22f8a43ae0c704f33e6477d6367a03c29b265480dc900169e9d417006c5d46f0ae446b8c6f1 gcc-or1k-musl-5.4.0-20170218.tar.gz
diff --git a/package/gcc/gcc.mk b/package/gcc/gcc.mk
index 93bc46643c..f858b9841f 100644
--- a/package/gcc/gcc.mk
+++ b/package/gcc/gcc.mk
@@ -10,13 +10,8 @@
GCC_VERSION = $(call qstrip,$(BR2_GCC_VERSION))
-ifeq ($(BR2_GCC_VERSION_ARC),y)
-GCC_SITE = $(call github,foss-for-synopsys-dwc-arc-processors,gcc,$(GCC_VERSION))
-GCC_SOURCE = gcc-$(GCC_VERSION).tar.gz
-else
GCC_SITE = $(BR2_GNU_MIRROR:/=)/gcc/gcc-$(GCC_VERSION)
GCC_SOURCE = gcc-$(GCC_VERSION).tar.xz
-endif
HOST_GCC_LICENSE = GPL-2.0, GPL-3.0, LGPL-2.1, LGPL-3.0
HOST_GCC_LICENSE_FILES = COPYING COPYING3 COPYING.LIB COPYING3.LIB
--
2.30.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [Buildroot] [PATCH 2/6] package/binutils: remove special arc version
2023-12-31 17:25 [Buildroot] [PATCH 0/6] rework arc architecture support Waldemar Brodkorb
2023-12-31 17:25 ` [Buildroot] [PATCH 1/6] package/gcc: remove special arc version Waldemar Brodkorb
@ 2023-12-31 17:25 ` Waldemar Brodkorb
2023-12-31 20:10 ` Yann E. MORIN
2023-12-31 17:25 ` [Buildroot] [PATCH 3/6] package/gdb: " Waldemar Brodkorb
` (3 subsequent siblings)
5 siblings, 1 reply; 18+ messages in thread
From: Waldemar Brodkorb @ 2023-12-31 17:25 UTC (permalink / raw)
To: buildroot; +Cc: Romain Naour, ARC Maintainers, Giulio Benetti, Thomas Petazzoni
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
---
package/binutils/Config.in.host | 9 +-
.../0001-poison-system-directories.patch | 310 ------------------
package/binutils/binutils.hash | 3 -
package/binutils/binutils.mk | 10 -
4 files changed, 1 insertion(+), 331 deletions(-)
delete mode 100644 package/binutils/arc-2020.09-release/0001-poison-system-directories.patch
diff --git a/package/binutils/Config.in.host b/package/binutils/Config.in.host
index bc7dc4443c..7f76e45a70 100644
--- a/package/binutils/Config.in.host
+++ b/package/binutils/Config.in.host
@@ -10,8 +10,7 @@ config BR2_PACKAGE_BINUTILS_HAS_NO_LIBSFRAME
choice
prompt "Binutils Version"
- default BR2_BINUTILS_VERSION_2_40_X if !BR2_arc
- default BR2_BINUTILS_VERSION_ARC if BR2_arc
+ default BR2_BINUTILS_VERSION_2_40_X
help
Select the version of binutils you wish to use.
@@ -25,16 +24,10 @@ config BR2_BINUTILS_VERSION_2_40_X
config BR2_BINUTILS_VERSION_2_41_X
bool "binutils 2.41"
-config BR2_BINUTILS_VERSION_ARC
- bool "binutils arc (2.34.50)"
- depends on BR2_arc
- select BR2_PACKAGE_BINUTILS_HAS_NO_LIBSFRAME
-
endchoice
config BR2_BINUTILS_VERSION
string
- default "arc-2020.09-release" if BR2_BINUTILS_VERSION_ARC
default "2.39" if BR2_BINUTILS_VERSION_2_39_X
default "2.40" if BR2_BINUTILS_VERSION_2_40_X
default "2.41" if BR2_BINUTILS_VERSION_2_41_X
diff --git a/package/binutils/arc-2020.09-release/0001-poison-system-directories.patch b/package/binutils/arc-2020.09-release/0001-poison-system-directories.patch
deleted file mode 100644
index 7a76ef2963..0000000000
--- a/package/binutils/arc-2020.09-release/0001-poison-system-directories.patch
+++ /dev/null
@@ -1,310 +0,0 @@
-From 5f62ad7ce534e3384d6ed8892614979da297bd70 Mon Sep 17 00:00:00 2001
-From: Evgeniy Didin <Evgeniy.Didin@synopsys.com>
-Date: Mon, 14 Oct 2019 16:45:15 +0300
-Subject: [PATCH] [PATCH] poison-system-directories
-
-Patch adapted to arc-binutils-gdb-2019.09
-Signed-off-by: Evgeniy Didin <Evgeniy.Didin@synopsys.com>
-
-Patch adapted to binutils 2.23.2 and extended to use
-BR_COMPILER_PARANOID_UNSAFE_PATH by Thomas Petazzoni.
-
-[Romain: rebase on top of 2.26]
-Signed-off-by: Romain Naour <romain.naour@gmail.com>
-[Gustavo: adapt to binutils 2.25]
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-Upstream-Status: Inappropriate [distribution: codesourcery]
-
-Patch originally created by Mark Hatle, forward-ported to
-binutils 2.21 by Scott Garman.
-
-purpose: warn for uses of system directories when cross linking
-
-Code Merged from Sourcery G++ binutils 2.19 - 4.4-277
-
-2008-07-02 Joseph Myers <joseph@codesourcery.com>
-
- ld/
- * ld.h (args_type): Add error_poison_system_directories.
- * ld.texinfo (--error-poison-system-directories): Document.
- * ldfile.c (ldfile_add_library_path): Check
- command_line.error_poison_system_directories.
- * ldmain.c (main): Initialize
- command_line.error_poison_system_directories.
- * lexsup.c (enum option_values): Add
- OPTION_ERROR_POISON_SYSTEM_DIRECTORIES.
- (ld_options): Add --error-poison-system-directories.
- (parse_args): Handle new option.
-
-2007-06-13 Joseph Myers <joseph@codesourcery.com>
-
- ld/
- * config.in: Regenerate.
- * ld.h (args_type): Add poison_system_directories.
- * ld.texinfo (--no-poison-system-directories): Document.
- * ldfile.c (ldfile_add_library_path): Check
- command_line.poison_system_directories.
- * ldmain.c (main): Initialize
- command_line.poison_system_directories.
- * lexsup.c (enum option_values): Add
- OPTION_NO_POISON_SYSTEM_DIRECTORIES.
- (ld_options): Add --no-poison-system-directories.
- (parse_args): Handle new option.
-
-2007-04-20 Joseph Myers <joseph@codesourcery.com>
-
- Merge from Sourcery G++ binutils 2.17:
-
- 2007-03-20 Joseph Myers <joseph@codesourcery.com>
- Based on patch by Mark Hatle <mark.hatle@windriver.com>.
- ld/
- * configure.ac (--enable-poison-system-directories): New option.
- * configure, config.in: Regenerate.
- * ldfile.c (ldfile_add_library_path): If
- ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of /lib,
- /usr/lib, /usr/local/lib or /usr/X11R6/lib.
-
-Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
-Signed-off-by: Scott Garman <scott.a.garman@intel.com>
----
- ld/config.in | 3 +++
- ld/configure | 14 ++++++++++++++
- ld/configure.ac | 10 ++++++++++
- ld/ld.h | 8 ++++++++
- ld/ld.texi | 12 ++++++++++++
- ld/ldfile.c | 17 +++++++++++++++++
- ld/ldlex.h | 2 ++
- ld/ldmain.c | 2 ++
- ld/lexsup.c | 21 +++++++++++++++++++++
- 9 files changed, 89 insertions(+)
-
-diff --git a/ld/config.in b/ld/config.in
-index d93c9b08300..5da2742beac 100644
---- a/ld/config.in
-+++ b/ld/config.in
-@@ -31,6 +31,9 @@
- language is requested. */
- #undef ENABLE_NLS
-
-+/* Define to warn for use of native system library directories */
-+#undef ENABLE_POISON_SYSTEM_DIRECTORIES
-+
- /* Additional extension a shared object might have. */
- #undef EXTRA_SHLIB_EXTENSION
-
-diff --git a/ld/configure b/ld/configure
-index 2d6ca5c0445..563f9921f7f 100755
---- a/ld/configure
-+++ b/ld/configure
-@@ -823,6 +823,7 @@ with_lib_path
- enable_targets
- enable_64_bit_bfd
- with_sysroot
-+enable_poison_system_directories
- enable_gold
- enable_got
- enable_compressed_debug_sections
-@@ -1487,6 +1488,8 @@ Optional Features:
- --disable-largefile omit support for large files
- --enable-targets alternative target configurations
- --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes)
-+ --enable-poison-system-directories
-+ warn for use of native system library directories
- --enable-gold[=ARG] build gold [ARG={default,yes,no}]
- --enable-got=<type> GOT handling scheme (target, single, negative,
- multigot)
-@@ -15804,7 +15807,18 @@ else
- fi
-
-
-+# Check whether --enable-poison-system-directories was given.
-+if test "${enable_poison_system_directories+set}" = set; then :
-+ enableval=$enable_poison_system_directories;
-+else
-+ enable_poison_system_directories=no
-+fi
-+
-+if test "x${enable_poison_system_directories}" = "xyes"; then
-
-+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
-+
-+fi
-
- # Check whether --enable-got was given.
- if test "${enable_got+set}" = set; then :
-diff --git a/ld/configure.ac b/ld/configure.ac
-index 41a51bbb7e9..dbaa98a9e17 100644
---- a/ld/configure.ac
-+++ b/ld/configure.ac
-@@ -94,6 +94,16 @@ AC_SUBST(use_sysroot)
- AC_SUBST(TARGET_SYSTEM_ROOT)
- AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
-
-+AC_ARG_ENABLE([poison-system-directories],
-+ AS_HELP_STRING([--enable-poison-system-directories],
-+ [warn for use of native system library directories]),,
-+ [enable_poison_system_directories=no])
-+if test "x${enable_poison_system_directories}" = "xyes"; then
-+ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
-+ [1],
-+ [Define to warn for use of native system library directories])
-+fi
-+
- dnl Use --enable-gold to decide if this linker should be the default.
- dnl "install_as_default" is set to false if gold is the default linker.
- dnl "installed_linker" is the installed BFD linker name.
-diff --git a/ld/ld.h b/ld/ld.h
-index 55078a9637b..511e9bc34b7 100644
---- a/ld/ld.h
-+++ b/ld/ld.h
-@@ -180,6 +180,14 @@ typedef struct
- in the linker script. */
- bfd_boolean force_group_allocation;
-
-+ /* If TRUE (the default) warn for uses of system directories when
-+ cross linking. */
-+ bfd_boolean poison_system_directories;
-+
-+ /* If TRUE (default FALSE) give an error for uses of system
-+ directories when cross linking instead of a warning. */
-+ bfd_boolean error_poison_system_directories;
-+
- /* Big or little endian as set on command line. */
- enum endian_enum endian;
-
-diff --git a/ld/ld.texi b/ld/ld.texi
-index fcbc335c95e..6ba7ebdb32a 100644
---- a/ld/ld.texi
-+++ b/ld/ld.texi
-@@ -2557,6 +2557,18 @@ string identifying the original linked file does not change.
-
- Passing @code{none} for @var{style} disables the setting from any
- @code{--build-id} options earlier on the command line.
-+
-+@kindex --no-poison-system-directories
-+@item --no-poison-system-directories
-+Do not warn for @option{-L} options using system directories such as
-+@file{/usr/lib} when cross linking. This option is intended for use
-+in chroot environments when such directories contain the correct
-+libraries for the target system rather than the host.
-+
-+@kindex --error-poison-system-directories
-+@item --error-poison-system-directories
-+Give an error instead of a warning for @option{-L} options using
-+system directories when cross linking.
- @end table
-
- @c man end
-diff --git a/ld/ldfile.c b/ld/ldfile.c
-index 7f60319390e..0bcc06db964 100644
---- a/ld/ldfile.c
-+++ b/ld/ldfile.c
-@@ -116,6 +116,23 @@ ldfile_add_library_path (const char *name, bfd_boolean cmdline)
- new_dirs->name = concat (ld_sysroot, name + strlen ("$SYSROOT"), (const char *) NULL);
- else
- new_dirs->name = xstrdup (name);
-+
-+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
-+ if (command_line.poison_system_directories
-+ && ((!strncmp (name, "/lib", 4))
-+ || (!strncmp (name, "/usr/lib", 8))
-+ || (!strncmp (name, "/usr/local/lib", 14))
-+ || (!strncmp (name, "/usr/X11R6/lib", 14))))
-+ {
-+ if (command_line.error_poison_system_directories)
-+ einfo (_("%X%P: error: library search path \"%s\" is unsafe for "
-+ "cross-compilation\n"), name);
-+ else
-+ einfo (_("%P: warning: library search path \"%s\" is unsafe for "
-+ "cross-compilation\n"), name);
-+ }
-+#endif
-+
- }
-
- /* Try to open a BFD for a lang_input_statement. */
-diff --git a/ld/ldlex.h b/ld/ldlex.h
-index 32a7a6409e8..c02b64bf92f 100644
---- a/ld/ldlex.h
-+++ b/ld/ldlex.h
-@@ -152,6 +152,8 @@ enum option_values
- OPTION_NO_PRINT_MAP_DISCARDED,
- OPTION_NON_CONTIGUOUS_REGIONS,
- OPTION_NON_CONTIGUOUS_REGIONS_WARNINGS,
-+ OPTION_NO_POISON_SYSTEM_DIRECTORIES,
-+ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES,
- };
-
-
- /* The initial parser states. */
-diff --git a/ld/ldmain.c b/ld/ldmain.c
-index 34c19223137..66d2c3f4bcf 100644
---- a/ld/ldmain.c
-+++ b/ld/ldmain.c
-@@ -270,6 +270,8 @@ main (int argc, char **argv)
- command_line.warn_mismatch = TRUE;
- command_line.warn_search_mismatch = TRUE;
- command_line.check_section_addresses = -1;
-+ command_line.poison_system_directories = TRUE;
-+ command_line.error_poison_system_directories = FALSE;
-
- /* We initialize DEMANGLING based on the environment variable
- COLLECT_NO_DEMANGLE. The gcc collect2 program will demangle the
-diff --git a/ld/lexsup.c b/ld/lexsup.c
-index 1c15ac29c0c..8b714e10a40 100644
---- a/ld/lexsup.c
-+++ b/ld/lexsup.c
-@@ -549,6 +549,14 @@ static const struct ld_option ld_options[] =
- { {"no-print-map-discarded", no_argument, NULL, OPTION_NO_PRINT_MAP_DISCARDED},
- '\0', NULL, N_("Do not show discarded sections in map file output"),
- TWO_DASHES },
-+ { {"no-poison-system-directories", no_argument, NULL,
-+ OPTION_NO_POISON_SYSTEM_DIRECTORIES},
-+ '\0', NULL, N_("Do not warn for -L options using system directories"),
-+ TWO_DASHES },
-+ { {"error-poison-system-directories", no_argument, NULL,
-+ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES},
-+ '\0', NULL, N_("Give an error for -L options using system directories"),
-+ TWO_DASHES },
- };
-
- #define OPTION_COUNT ARRAY_SIZE (ld_options)
-@@ -561,6 +569,7 @@ parse_args (unsigned argc, char **argv)
- int ingroup = 0;
- char *default_dirlist = NULL;
- char *shortopts;
-+ char *BR_paranoid_env;
- struct option *longopts;
- struct option *really_longopts;
- int last_optind;
-@@ -1549,6 +1558,14 @@ parse_args (unsigned argc, char **argv)
- }
- break;
-
-+ case OPTION_NO_POISON_SYSTEM_DIRECTORIES:
-+ command_line.poison_system_directories = FALSE;
-+ break;
-+
-+ case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES:
-+ command_line.error_poison_system_directories = TRUE;
-+ break;
-+
- case OPTION_PUSH_STATE:
- input_flags.pushed = xmemdup (&input_flags,
- sizeof (input_flags),
-@@ -1600,6 +1617,10 @@ parse_args (unsigned argc, char **argv)
- command_line.soname = NULL;
- }
-
-+ BR_paranoid_env = getenv("BR_COMPILER_PARANOID_UNSAFE_PATH");
-+ if (BR_paranoid_env && strlen(BR_paranoid_env) > 0)
-+ command_line.error_poison_system_directories = TRUE;
-+
- while (ingroup)
- {
- einfo (_("%P: missing --end-group; added as last command line option\n"));
---
-2.16.2
-
diff --git a/package/binutils/binutils.hash b/package/binutils/binutils.hash
index 564a4c3bd7..f71a238517 100644
--- a/package/binutils/binutils.hash
+++ b/package/binutils/binutils.hash
@@ -3,9 +3,6 @@ sha512 68e038f339a8c21faa19a57bbc447a51c817f47c2e06d740847c6e9cc3396c025d35d536
sha512 a37e042523bc46494d99d5637c3f3d8f9956d9477b748b3b1f6d7dfbb8d968ed52c932e88a4e946c6f77b8f48f1e1b360ca54c3d298f17193f3b4963472f6925 binutils-2.40.tar.xz
sha512 5df45d0bd6ddabdce4f35878c041e46a92deef01e7dea5facc97fd65cc06b59abc6fba0eb454b68e571c7e14038dc823fe7f2263843e6e627b7444eaf0fe9374 binutils-2.41.tar.xz
-# Locally calculated (fetched from Github)
-sha512 76a8227a19218435319c660e4983ea17985194b7f496f163e97543e7f6fd3e9249241fdc05a16ba512fba96a1d846c1f7b080983404d821d6215f10e7f11e238 binutils-gdb-arc-2020.09-release.tar.gz
-
# locally computed
sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING3
sha256 56bdea73b6145ef6ac5259b3da390b981d840c24cb03b8e1cbc678de7ecfa18d COPYING.LIB
diff --git a/package/binutils/binutils.mk b/package/binutils/binutils.mk
index 4bc1b69fa0..73d15b6102 100644
--- a/package/binutils/binutils.mk
+++ b/package/binutils/binutils.mk
@@ -8,19 +8,9 @@
# If not, we do like other packages
BINUTILS_VERSION = $(call qstrip,$(BR2_BINUTILS_VERSION))
ifeq ($(BINUTILS_VERSION),)
-ifeq ($(BR2_arc),y)
-BINUTILS_VERSION = arc-2020.09-release
-else
BINUTILS_VERSION = 2.40
-endif
endif # BINUTILS_VERSION
-ifeq ($(BINUTILS_VERSION),arc-2020.09-release)
-BINUTILS_SITE = $(call github,foss-for-synopsys-dwc-arc-processors,binutils-gdb,$(BINUTILS_VERSION))
-BINUTILS_SOURCE = binutils-gdb-$(BINUTILS_VERSION).tar.gz
-BINUTILS_FROM_GIT = y
-endif
-
BINUTILS_SITE ?= $(BR2_GNU_MIRROR)/binutils
BINUTILS_SOURCE ?= binutils-$(BINUTILS_VERSION).tar.xz
BINUTILS_EXTRA_CONFIG_OPTIONS = $(call qstrip,$(BR2_BINUTILS_EXTRA_CONFIG_OPTIONS))
--
2.30.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [Buildroot] [PATCH 3/6] package/gdb: remove special arc version
2023-12-31 17:25 [Buildroot] [PATCH 0/6] rework arc architecture support Waldemar Brodkorb
2023-12-31 17:25 ` [Buildroot] [PATCH 1/6] package/gcc: remove special arc version Waldemar Brodkorb
2023-12-31 17:25 ` [Buildroot] [PATCH 2/6] package/binutils: " Waldemar Brodkorb
@ 2023-12-31 17:25 ` Waldemar Brodkorb
2023-12-31 20:24 ` Yann E. MORIN
2023-12-31 17:25 ` [Buildroot] [PATCH 4/6] configs/qemu: add qemu_arc_defconfig Waldemar Brodkorb
` (2 subsequent siblings)
5 siblings, 1 reply; 18+ messages in thread
From: Waldemar Brodkorb @ 2023-12-31 17:25 UTC (permalink / raw)
To: buildroot; +Cc: Romain Naour, ARC Maintainers, Giulio Benetti, Thomas Petazzoni
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
---
package/gdb/Config.in.host | 3 -
...t-define-basic_string_view-to_string.patch | 114 ------------------
package/gdb/gdb.hash | 3 -
package/gdb/gdb.mk | 23 +---
4 files changed, 2 insertions(+), 141 deletions(-)
delete mode 100644 package/gdb/arc-2020.09-release-gdb/0001-Do-not-define-basic_string_view-to_string.patch
diff --git a/package/gdb/Config.in.host b/package/gdb/Config.in.host
index da35fd94f7..69b13e9eb0 100644
--- a/package/gdb/Config.in.host
+++ b/package/gdb/Config.in.host
@@ -35,14 +35,12 @@ config BR2_PACKAGE_HOST_GDB_PYTHON3
config BR2_PACKAGE_HOST_GDB_SIM
bool "Simulator support"
- depends on !BR2_arc
help
This option enables the simulator support in the cross gdb.
choice
prompt "GDB debugger Version"
default BR2_GDB_VERSION_13
- depends on !BR2_arc
help
Select the version of gdb you wish to use.
@@ -62,7 +60,6 @@ endif
# If cross-gdb is not enabled, the latest stable version is chosen.
config BR2_GDB_VERSION
string
- default "arc-2020.09-release-gdb" if BR2_arc
default "12.1" if BR2_GDB_VERSION_12
default "13.2" if BR2_GDB_VERSION_13 || !BR2_PACKAGE_HOST_GDB
# When making 14.x the default, or 14.x becomes the oldest version,
diff --git a/package/gdb/arc-2020.09-release-gdb/0001-Do-not-define-basic_string_view-to_string.patch b/package/gdb/arc-2020.09-release-gdb/0001-Do-not-define-basic_string_view-to_string.patch
deleted file mode 100644
index 210ba6d609..0000000000
--- a/package/gdb/arc-2020.09-release-gdb/0001-Do-not-define-basic_string_view-to_string.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-From 5ac588997c3c2d032d5d5145d9245eb37354c23b Mon Sep 17 00:00:00 2001
-From: Tom Tromey <tromey@adacore.com>
-Date: Tue, 30 Jun 2020 07:53:03 -0600
-Subject: [PATCH] Do not define basic_string_view::to_string
-
-gdb's copy of basic_string_view includes a to_string method. However,
-according to cppreference, this is not a method on the real
-std::basic_string_view:
-
-https://en.cppreference.com/w/cpp/string/basic_string_view
-
-This difference matters because gdb_string_view.h will use the
-standard implementation when built with a C++17 or later. This caused
-PR build/26183.
-
-This patch fixes the problem by changing the method to be a standalone
-helper function, and then rewriting the uses. Tested by rebuilding
-with a version of GCC that defaults to C++17.
-
-(Note that the build still is not clean; and also I noticed that the
-libstdc++ string_view forbids the use of nullptr ... I wonder if gdb
-violates that.)
-
-gdb/ChangeLog
-2020-06-30 Tom Tromey <tromey@adacore.com>
-
- PR build/26183:
- * ada-lang.c (ada_lookup_name_info::ada_lookup_name_info): Use
- gdb::to_string.
-
-gdbsupport/ChangeLog
-2020-06-30 Tom Tromey <tromey@adacore.com>
-
- PR build/26183:
- * gdb_string_view.h (basic_string_view::to_string): Remove.
- (gdb::to_string): New function.
-
-Upstream: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=5ac588997c3c2d032d5d5145d9245eb37354c23b
-Bug report: https://sourceware.org/bugzilla/show_bug.cgi?id=26183
-
-Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
----
- gdb/ChangeLog | 6 ++++++
- gdb/ada-lang.c | 8 ++++----
- gdbsupport/ChangeLog | 6 ++++++
- gdbsupport/gdb_string_view.h | 17 ++++++++++-------
- 4 files changed, 26 insertions(+), 11 deletions(-)
-
-diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
-index 9b0c2efbfe2..98508c168bc 100644
---- a/gdb/ada-lang.c
-+++ b/gdb/ada-lang.c
-@@ -13553,10 +13553,10 @@ ada_lookup_name_info::ada_lookup_name_info (const lookup_name_info &lookup_name)
- {
- if (user_name.back () == '>')
- m_encoded_name
-- = user_name.substr (1, user_name.size () - 2).to_string ();
-+ = gdb::to_string (user_name.substr (1, user_name.size () - 2));
- else
- m_encoded_name
-- = user_name.substr (1, user_name.size () - 1).to_string ();
-+ = gdb::to_string (user_name.substr (1, user_name.size () - 1));
- m_encoded_p = true;
- m_verbatim_p = true;
- m_wild_match_p = false;
-@@ -13575,10 +13575,10 @@ ada_lookup_name_info::ada_lookup_name_info (const lookup_name_info &lookup_name)
- if (encoded != NULL)
- m_encoded_name = encoded;
- else
-- m_encoded_name = user_name.to_string ();
-+ m_encoded_name = gdb::to_string (user_name);
- }
- else
-- m_encoded_name = user_name.to_string ();
-+ m_encoded_name = gdb::to_string (user_name);
-
- /* Handle the 'package Standard' special case. See description
- of m_standard_p. */
-diff --git a/gdbsupport/gdb_string_view.h b/gdbsupport/gdb_string_view.h
-index c0ae7a8a2d9..65124e67e54 100644
---- a/gdbsupport/gdb_string_view.h
-+++ b/gdbsupport/gdb_string_view.h
-@@ -245,13 +245,6 @@ namespace gdb {
- return { this->_M_str, this->_M_len };
- }
-
-- template<typename _Allocator = std::allocator<_CharT>>
-- std::basic_string<_CharT, _Traits, _Allocator>
-- to_string(const _Allocator& __alloc = _Allocator()) const
-- {
-- return { this->_M_str, this->_M_len, __alloc };
-- }
--
- size_type
- copy(_CharT* __str, size_type __n, size_type __pos = 0) const
- {
-@@ -560,4 +553,14 @@ namespace gdb {
-
- #endif // __cplusplus < 201703L
-
-+namespace gdb {
-+
-+static inline std::string
-+to_string(const gdb::string_view &view)
-+{
-+ return { view.data (), view.size () };
-+}
-+
-+}
-+
- #endif /* COMMON_GDB_STRING_VIEW_H */
---
-2.39.3
-
diff --git a/package/gdb/gdb.hash b/package/gdb/gdb.hash
index ba90bff5d6..bdc236daf3 100644
--- a/package/gdb/gdb.hash
+++ b/package/gdb/gdb.hash
@@ -4,6 +4,3 @@ sha512 07e9026423438049b11f4f784d57401ece4e940570f613bd6958b3714fe7fbc2c048470b
sha512 425568d2e84672177d0fb87b1ad7daafdde097648d605e30cf0656970f66adc6a82ca2d83375ea4be583e9683a340e5bfdf5819668ddf66728200141ae50ff2d gdb-12.1.tar.xz
sha512 8185d3e11ab60dafff5860a5016577bfe7dd7547ef01ebc867bc247603d82b74ff74c4f29492c7d2aee57076f52be33e289f4c6b414a4b870d4b3004909f4c34 gdb-13.2.tar.xz
sha512 575e198105076fc4a88f68591aa114ab9c1196e84386a3f7b9b58fe5f30cdeed33f6a5f957b68f08c47284ec922bb60c964627e238471419673fd913575ce427 gdb-14.1.tar.xz
-
-# Locally calculated (fetched from Github)
-sha512 5a2acf2fd33ab2ff589e1037ca40abda54328997dcff26b2b49b874bd3be980be5a63342962254f3c3bda98e32ce7a33af704d37353352833dee193135600458 gdb-arc-2020.09-release-gdb.tar.gz
diff --git a/package/gdb/gdb.mk b/package/gdb/gdb.mk
index af40f7f986..26695b2cd4 100644
--- a/package/gdb/gdb.mk
+++ b/package/gdb/gdb.mk
@@ -8,12 +8,6 @@ GDB_VERSION = $(call qstrip,$(BR2_GDB_VERSION))
GDB_SITE = $(BR2_GNU_MIRROR)/gdb
GDB_SOURCE = gdb-$(GDB_VERSION).tar.xz
-ifeq ($(BR2_arc),y)
-GDB_SITE = $(call github,foss-for-synopsys-dwc-arc-processors,binutils-gdb,$(GDB_VERSION))
-GDB_SOURCE = gdb-$(GDB_VERSION).tar.gz
-GDB_FROM_GIT = y
-endif
-
GDB_LICENSE = GPL-2.0+, LGPL-2.0+, GPL-3.0+, LGPL-3.0+
GDB_LICENSE_FILES = COPYING COPYING.LIB COPYING3 COPYING3.LIB
GDB_CPE_ID_VENDOR = gnu
@@ -56,11 +50,8 @@ GDB_DEPENDENCIES += host-flex host-bison
HOST_GDB_DEPENDENCIES += host-flex host-bison
endif
-# All newer versions of GDB need host-gmp, so it's only for older
-# versions that the dependency can be avoided.
-ifeq ($(BR2_arc),)
+# All newer versions of GDB need host-gmp
HOST_GDB_DEPENDENCIES += host-gmp
-endif
# When gdb sources are fetched from the binutils-gdb repository, they
# also contain the binutils sources, but binutils shouldn't be built,
@@ -158,13 +149,10 @@ GDB_CONF_OPTS += \
endif
# Starting from GDB 11.x, gmp is needed as a dependency to build full
-# gdb. So we avoid the dependency only for the special version used on
-# ARC.
-ifeq ($(BR2_arc):$(BR2_PACKAGE_GDB_DEBUGGER),:y)
+# gdb.
GDB_CONF_OPTS += \
--with-libgmp-prefix=$(STAGING_DIR)/usr
GDB_DEPENDENCIES += gmp
-endif
# Starting from GDB 14.x, mpfr is needed as a dependency to build full
# gdb.
@@ -182,13 +170,6 @@ else
GDB_CONF_OPTS += --disable-gdbserver
endif
-# When gdb is built as C++ application for ARC it segfaults at runtime
-# So we pass --disable-build-with-cxx config option to force gdb not to
-# be built as C++ app.
-ifeq ($(BR2_arc),y)
-GDB_CONF_OPTS += --disable-build-with-cxx
-endif
-
# gdb 7.12+ by default builds with a C++ compiler, which doesn't work
# when we don't have C++ support in the toolchain
ifneq ($(BR2_INSTALL_LIBSTDCPP),y)
--
2.30.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [Buildroot] [PATCH 4/6] configs/qemu: add qemu_arc_defconfig
2023-12-31 17:25 [Buildroot] [PATCH 0/6] rework arc architecture support Waldemar Brodkorb
` (2 preceding siblings ...)
2023-12-31 17:25 ` [Buildroot] [PATCH 3/6] package/gdb: " Waldemar Brodkorb
@ 2023-12-31 17:25 ` Waldemar Brodkorb
2023-12-31 20:27 ` Yann E. MORIN
2024-01-06 22:22 ` [Buildroot] [arc-buildroot] " Alexey Brodkin via buildroot
2023-12-31 17:25 ` [Buildroot] [PATCH 5/6] configs/snps_arc700_nsim_defconfig: update kernel Waldemar Brodkorb
2023-12-31 17:25 ` [Buildroot] [PATCH 6/6] configs/snps_archs38_hsdk_defconfig: " Waldemar Brodkorb
5 siblings, 2 replies; 18+ messages in thread
From: Waldemar Brodkorb @ 2023-12-31 17:25 UTC (permalink / raw)
To: buildroot; +Cc: Romain Naour, ARC Maintainers, Giulio Benetti, Thomas Petazzoni
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
---
board/qemu/arc/linux.config | 32 ++++++++++++++++++++++++++++++++
board/qemu/arc/readme.txt | 8 ++++++++
configs/qemu_arc_defconfig | 30 ++++++++++++++++++++++++++++++
3 files changed, 70 insertions(+)
create mode 100644 board/qemu/arc/linux.config
create mode 100644 board/qemu/arc/readme.txt
create mode 100644 configs/qemu_arc_defconfig
diff --git a/board/qemu/arc/linux.config b/board/qemu/arc/linux.config
new file mode 100644
index 0000000000..40c7b950e8
--- /dev/null
+++ b/board/qemu/arc/linux.config
@@ -0,0 +1,32 @@
+CONFIG_ARC=y
+CONFIG_ISA_ARCV2=y
+CONFIG_ARC_CPU_HS=y
+CONFIG_MMU=y
+CONFIG_ARC_HAS_ACCL_REGS=y
+CONFIG_ARC_MMU_V4=y
+CONFIG_ARC_PAGE_SIZE_8K=y
+CONFIG_COMPAT_32BIT_TIME=y
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_NET=y
+CONFIG_VIRTIO_CONSOLE=y
+CONFIG_VIRTIO_MENU=y
+CONFIG_VIRTIO_MMIO=y
+CONFIG_ARC_BUILTIN_DTB_NAME="haps_hs"
+CONFIG_NETDEVICES=y
+CONFIG_NET_CORE=y
+CONFIG_ETHERNET=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_SERIAL_EARLYCON=y
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+CONFIG_SERIAL_8250_DWLIB=y
+CONFIG_SERIAL_8250_DW=y
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_TMPFS=y
diff --git a/board/qemu/arc/readme.txt b/board/qemu/arc/readme.txt
new file mode 100644
index 0000000000..93bb9c2152
--- /dev/null
+++ b/board/qemu/arc/readme.txt
@@ -0,0 +1,8 @@
+You need Qemu fork from here:
+https://github.com/foss-for-synopsys-dwc-arc-processors/qemu
+
+Run the emulation with:
+
+ qemu-system-arc -monitor none -serial stdio -netdev user,id=eth0 -device virtio-net-device,netdev=eth0 -cpu archs -kernel output/images/vmlinux -nographic # qemu_arc_defconfig
+
+The login prompt will appear in the terminal that started Qemu.
diff --git a/configs/qemu_arc_defconfig b/configs/qemu_arc_defconfig
new file mode 100644
index 0000000000..d65e28a3d0
--- /dev/null
+++ b/configs/qemu_arc_defconfig
@@ -0,0 +1,30 @@
+# Architecture
+BR2_arc=y
+BR2_arcle=y
+BR2_archs38=y
+
+# System
+BR2_SYSTEM_DHCP="eth0"
+
+# Filesystem
+# BR2_TARGET_ROOTFS_TAR is not set
+BR2_TARGET_ROOTFS_INITRAMFS=y
+
+# Image
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
+BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
+
+# Linux headers same as kernel
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_1=y
+
+# Kernel
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.44"
+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/arc/linux.config"
+BR2_LINUX_KERNEL_VMLINUX=y
+
+# host-qemu for gitlab testing
+BR2_PACKAGE_HOST_QEMU=y
+BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y
--
2.30.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [Buildroot] [PATCH 5/6] configs/snps_arc700_nsim_defconfig: update kernel
2023-12-31 17:25 [Buildroot] [PATCH 0/6] rework arc architecture support Waldemar Brodkorb
` (3 preceding siblings ...)
2023-12-31 17:25 ` [Buildroot] [PATCH 4/6] configs/qemu: add qemu_arc_defconfig Waldemar Brodkorb
@ 2023-12-31 17:25 ` Waldemar Brodkorb
2023-12-31 17:25 ` [Buildroot] [PATCH 6/6] configs/snps_archs38_hsdk_defconfig: " Waldemar Brodkorb
5 siblings, 0 replies; 18+ messages in thread
From: Waldemar Brodkorb @ 2023-12-31 17:25 UTC (permalink / raw)
To: buildroot; +Cc: Romain Naour, ARC Maintainers, Giulio Benetti, Thomas Petazzoni
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
---
board/synopsys/nsim/readme.txt | 2 +-
configs/snps_arc700_nsim_defconfig | 9 ++++++---
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/board/synopsys/nsim/readme.txt b/board/synopsys/nsim/readme.txt
index cc89cf87ac..bf47ecaf4d 100644
--- a/board/synopsys/nsim/readme.txt
+++ b/board/synopsys/nsim/readme.txt
@@ -2,7 +2,7 @@ How to build it
===============
Configure build for the selected nSIM target. For instance, for
-ARC700 nSIM target use the following defauilt configuration:
+ARC700 nSIM target use the following default configuration:
$ make snps_arc700_nsim_defconfig
Optionally modify the configuration:
diff --git a/configs/snps_arc700_nsim_defconfig b/configs/snps_arc700_nsim_defconfig
index 3964924bed..e782522d33 100644
--- a/configs/snps_arc700_nsim_defconfig
+++ b/configs/snps_arc700_nsim_defconfig
@@ -1,16 +1,19 @@
# Architecture
BR2_arcle=y
+# arc700 not supported by glibc
+BR2_TOOLCHAIN_BUILDROOT_UCLIBC=y
+
# System
BR2_TARGET_GENERIC_HOSTNAME="arc700"
-# Linux headers same as kernel, a 6.0 series
-BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_0=y
+# Linux headers same as kernel, a 6.1 series
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_1=y
# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.0.8"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.69"
BR2_LINUX_KERNEL_DEFCONFIG="nsim_700"
BR2_LINUX_KERNEL_VMLINUX=y
--
2.30.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [Buildroot] [PATCH 6/6] configs/snps_archs38_hsdk_defconfig: update kernel
2023-12-31 17:25 [Buildroot] [PATCH 0/6] rework arc architecture support Waldemar Brodkorb
` (4 preceding siblings ...)
2023-12-31 17:25 ` [Buildroot] [PATCH 5/6] configs/snps_arc700_nsim_defconfig: update kernel Waldemar Brodkorb
@ 2023-12-31 17:25 ` Waldemar Brodkorb
5 siblings, 0 replies; 18+ messages in thread
From: Waldemar Brodkorb @ 2023-12-31 17:25 UTC (permalink / raw)
To: buildroot; +Cc: Romain Naour, ARC Maintainers, Giulio Benetti, Thomas Petazzoni
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
---
configs/snps_archs38_hsdk_defconfig | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/configs/snps_archs38_hsdk_defconfig b/configs/snps_archs38_hsdk_defconfig
index 413ca5098c..0275d29d6e 100644
--- a/configs/snps_archs38_hsdk_defconfig
+++ b/configs/snps_archs38_hsdk_defconfig
@@ -1,7 +1,7 @@
BR2_arcle=y
BR2_archs38_full=y
BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
-BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_16=y
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_1=y
BR2_PACKAGE_GLIBC_UTILS=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_TARGET_OPTIMIZATION="-mfpu=fpud_all"
@@ -12,7 +12,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/synopsys/hsdk/genimage.cfg"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.16"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.69"
BR2_LINUX_KERNEL_DEFCONFIG="hsdk"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/synopsys/hsdk/linux.fragment"
BR2_TARGET_ROOTFS_EXT2=y
--
2.30.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [Buildroot] [PATCH 1/6] package/gcc: remove special arc version
2023-12-31 17:25 ` [Buildroot] [PATCH 1/6] package/gcc: remove special arc version Waldemar Brodkorb
@ 2023-12-31 20:02 ` Yann E. MORIN
2024-01-01 14:43 ` [Buildroot] [arc-buildroot] " Alexey Brodkin via buildroot
2023-12-31 20:13 ` [Buildroot] " Yann E. MORIN
1 sibling, 1 reply; 18+ messages in thread
From: Yann E. MORIN @ 2023-12-31 20:02 UTC (permalink / raw)
To: Waldemar Brodkorb
Cc: Romain Naour, ARC Maintainers, Giulio Benetti, Thomas Petazzoni,
buildroot
Waldemar, All,
On 2023-12-31 18:25 +0100, Waldemar Brodkorb spake thusly:
> Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Thanks for working on this; we discussed that with Thomas the other day,
and we concluded that indeed that would be a good idea to get rid of
that special version now.
However, your commit log is empty. It should instead explain the reasons
why dropping that special version is now a good thing.
It is very importaant that this information be recorded in the commit
log, because we may (will!) need to refer to it in the future, when we
then wonder why that was good idea.
That applies to the other components as well, of course: binutils and
gdb.
Regards,
Yann E. MORIN.
> ---
> package/gcc/Config.in.host | 9 -
> .../0001-arc-Refurbish-adc-sbc-patterns.patch | 243 ------------------
> ...er-Remove-cyclades-from-libsanitizer.patch | 121 ---------
> ...-machine-names-in-__has_include-.-PR.patch | 124 ---------
> .../0100-uclibc-conf.patch | 29 ---
> package/gcc/gcc.hash | 2 -
> package/gcc/gcc.mk | 5 -
> 7 files changed, 533 deletions(-)
> delete mode 100644 package/gcc/arc-2020.09-release/0001-arc-Refurbish-adc-sbc-patterns.patch
> delete mode 100644 package/gcc/arc-2020.09-release/0002-libsanitizer-Remove-cyclades-from-libsanitizer.patch
> delete mode 100644 package/gcc/arc-2020.09-release/0003-fixinc-don-t-fix-machine-names-in-__has_include-.-PR.patch
> delete mode 100644 package/gcc/arc-2020.09-release/0100-uclibc-conf.patch
>
> diff --git a/package/gcc/Config.in.host b/package/gcc/Config.in.host
> index fd721088ec..db6f378d6a 100644
> --- a/package/gcc/Config.in.host
> +++ b/package/gcc/Config.in.host
> @@ -2,19 +2,11 @@ comment "GCC Options"
>
> choice
> prompt "GCC compiler Version"
> - default BR2_GCC_VERSION_ARC if BR2_GCC_VERSION_4_8_ARC # legacy
> - default BR2_GCC_VERSION_ARC if BR2_arc
> default BR2_GCC_VERSION_POWERPC_SPE if BR2_POWERPC_CPU_HAS_SPE
> default BR2_GCC_VERSION_12_X
> help
> Select the version of gcc you wish to use.
>
> -config BR2_GCC_VERSION_ARC
> - bool "gcc arc (10.x)"
> - # Only supported architecture
> - depends on BR2_arc
> - select BR2_TOOLCHAIN_GCC_AT_LEAST_10
> -
> config BR2_GCC_VERSION_POWERPC_SPE
> bool "gcc powerpc spe"
> # powerpc spe support has been deprecated since gcc 8.x.
> @@ -81,7 +73,6 @@ config BR2_GCC_VERSION
> default "11.4.0" if BR2_GCC_VERSION_11_X
> default "12.3.0" if BR2_GCC_VERSION_12_X
> default "13.2.0" if BR2_GCC_VERSION_13_X
> - default "arc-2020.09-release" if BR2_GCC_VERSION_ARC
>
> config BR2_EXTRA_GCC_CONFIG_OPTIONS
> string "Additional gcc options"
> diff --git a/package/gcc/arc-2020.09-release/0001-arc-Refurbish-adc-sbc-patterns.patch b/package/gcc/arc-2020.09-release/0001-arc-Refurbish-adc-sbc-patterns.patch
> deleted file mode 100644
> index 3292b26a4e..0000000000
> --- a/package/gcc/arc-2020.09-release/0001-arc-Refurbish-adc-sbc-patterns.patch
> +++ /dev/null
> @@ -1,243 +0,0 @@
> -From b92c22b144d063c4436a6693045ceb57d344c495 Mon Sep 17 00:00:00 2001
> -From: Claudiu Zissulescu <claziss@synopsys.com>
> -Date: Wed, 11 Nov 2020 12:31:10 +0200
> -Subject: [PATCH] arc: Refurbish adc/sbc patterns
> -
> -The adc/sbc patterns were unecessary spliting, remove that and
> -associated functions.
> -
> -gcc/ChangeLog:
> -
> -2020-10-11 Claudiu Zissulescu <claziss@synopsys.com>
> -
> - * config/arc/arc-protos.h (arc_scheduling_not_expected): Remove
> - it.
> - (arc_sets_cc_p): Likewise.
> - (arc_need_delay): Likewise.
> - * config/arc/arc.c (arc_sets_cc_p): Likewise.
> - (arc_need_delay): Likewise.
> - (arc_scheduling_not_expected): Likewise.
> - * config/arc/arc.md: Convert adc/sbc patterns to simple
> - instruction definitions.
> -
> -Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com>
> -
> -Downloaded from upstream commit
> -https://github.com/foss-for-synopsys-dwc-arc-processors/gcc/commit/b92c22b144d063c4436a6693045ceb57d344c495
> -
> -Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> ----
> - gcc/config/arc/arc-protos.h | 3 --
> - gcc/config/arc/arc.c | 53 ---------------------
> - gcc/config/arc/arc.md | 95 +++++++++++--------------------------
> - 3 files changed, 29 insertions(+), 122 deletions(-)
> -
> -diff --git a/gcc/config/arc/arc-protos.h b/gcc/config/arc/arc-protos.h
> -index c72d78e3b9e..de4cf47c818 100644
> ---- a/gcc/config/arc/arc-protos.h
> -+++ b/gcc/config/arc/arc-protos.h
> -@@ -90,10 +90,7 @@ extern void split_subsi (rtx *);
> - extern void arc_split_move (rtx *);
> - extern const char *arc_short_long (rtx_insn *insn, const char *, const char *);
> - extern rtx arc_regno_use_in (unsigned int, rtx);
> --extern bool arc_scheduling_not_expected (void);
> --extern bool arc_sets_cc_p (rtx_insn *insn);
> - extern int arc_label_align (rtx_insn *label);
> --extern bool arc_need_delay (rtx_insn *insn);
> - extern bool arc_text_label (rtx_insn *insn);
> -
> - extern bool arc_short_comparison_p (rtx, int);
> -diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c
> -index 5a7b0cb6696..c3ee9181f93 100644
> ---- a/gcc/config/arc/arc.c
> -+++ b/gcc/config/arc/arc.c
> -@@ -10341,59 +10341,6 @@ arc_attr_type (rtx_insn *insn)
> - return get_attr_type (insn);
> - }
> -
> --/* Return true if insn sets the condition codes. */
> --
> --bool
> --arc_sets_cc_p (rtx_insn *insn)
> --{
> -- if (NONJUMP_INSN_P (insn))
> -- if (rtx_sequence *seq = dyn_cast <rtx_sequence *> (PATTERN (insn)))
> -- insn = seq->insn (seq->len () - 1);
> -- return arc_attr_type (insn) == TYPE_COMPARE;
> --}
> --
> --/* Return true if INSN is an instruction with a delay slot we may want
> -- to fill. */
> --
> --bool
> --arc_need_delay (rtx_insn *insn)
> --{
> -- rtx_insn *next;
> --
> -- if (!flag_delayed_branch)
> -- return false;
> -- /* The return at the end of a function needs a delay slot. */
> -- if (NONJUMP_INSN_P (insn) && GET_CODE (PATTERN (insn)) == USE
> -- && (!(next = next_active_insn (insn))
> -- || ((!NONJUMP_INSN_P (next) || GET_CODE (PATTERN (next)) != SEQUENCE)
> -- && arc_attr_type (next) == TYPE_RETURN))
> -- && (!TARGET_PAD_RETURN
> -- || (prev_active_insn (insn)
> -- && prev_active_insn (prev_active_insn (insn))
> -- && prev_active_insn (prev_active_insn (prev_active_insn (insn))))))
> -- return true;
> -- if (NONJUMP_INSN_P (insn)
> -- ? (GET_CODE (PATTERN (insn)) == USE
> -- || GET_CODE (PATTERN (insn)) == CLOBBER
> -- || GET_CODE (PATTERN (insn)) == SEQUENCE)
> -- : JUMP_P (insn)
> -- ? (GET_CODE (PATTERN (insn)) == ADDR_VEC
> -- || GET_CODE (PATTERN (insn)) == ADDR_DIFF_VEC)
> -- : !CALL_P (insn))
> -- return false;
> -- return num_delay_slots (insn) != 0;
> --}
> --
> --/* Return true if the scheduling pass(es) has/have already run,
> -- i.e. where possible, we should try to mitigate high latencies
> -- by different instruction selection. */
> --
> --bool
> --arc_scheduling_not_expected (void)
> --{
> -- return cfun->machine->arc_reorg_started;
> --}
> --
> - /* Code has a minimum p2 alignment of 1, which we must restore after
> - an ADDR_DIFF_VEC. */
> -
> -diff --git a/gcc/config/arc/arc.md b/gcc/config/arc/arc.md
> -index f91adbc0d94..c635b69ddd5 100644
> ---- a/gcc/config/arc/arc.md
> -+++ b/gcc/config/arc/arc.md
> -@@ -2847,43 +2847,25 @@ archs4x, archs4xd"
> - (set_attr "type" "compare")
> - (set_attr "length" "4,4,8")])
> -
> --; w/c/c comes first (rather than w/0/C_0) to prevent the middle-end
> --; needlessly prioritizing the matching constraint.
> --; Rcw/0/C_0 comes before w/c/L so that the lower latency conditional
> --; execution is used where possible.
> --(define_insn_and_split "adc"
> -- [(set (match_operand:SI 0 "dest_reg_operand" "=w,Rcw,w,Rcw,w")
> -- (plus:SI (plus:SI (ltu:SI (reg:CC_C CC_REG) (const_int 0))
> -- (match_operand:SI 1 "nonmemory_operand"
> -- "%c,0,c,0,cCal"))
> -- (match_operand:SI 2 "nonmemory_operand" "c,C_0,L,I,cCal")))]
> -+(define_insn "adc"
> -+ [(set (match_operand:SI 0 "register_operand" "=r, r,r,r, r,r")
> -+ (plus:SI
> -+ (plus:SI
> -+ (ltu:SI (reg:CC_C CC_REG) (const_int 0))
> -+ (match_operand:SI 1 "nonmemory_operand" "%r, 0,r,0,Cal,r"))
> -+ (match_operand:SI 2 "nonmemory_operand" "r,C_0,L,I, r,Cal")))]
> - "register_operand (operands[1], SImode)
> - || register_operand (operands[2], SImode)"
> - "@
> -- adc %0,%1,%2
> -- add.cs %0,%1,1
> -- adc %0,%1,%2
> -- adc %0,%1,%2
> -- adc %0,%1,%2"
> -- ; if we have a bad schedule after sched2, split.
> -- "reload_completed
> -- && !optimize_size && (!TARGET_ARC600_FAMILY)
> -- && arc_scheduling_not_expected ()
> -- && arc_sets_cc_p (prev_nonnote_insn (insn))
> -- /* If next comes a return or other insn that needs a delay slot,
> -- expect the adc to get into the delay slot. */
> -- && next_nonnote_insn (insn)
> -- && !arc_need_delay (next_nonnote_insn (insn))
> -- /* Restore operands before emitting. */
> -- && (extract_insn_cached (insn), 1)"
> -- [(set (match_dup 0) (match_dup 3))
> -- (cond_exec
> -- (ltu (reg:CC_C CC_REG) (const_int 0))
> -- (set (match_dup 0) (plus:SI (match_dup 0) (const_int 1))))]
> -- "operands[3] = simplify_gen_binary (PLUS, SImode, operands[1], operands[2]);"
> -+ adc\\t%0,%1,%2
> -+ add.cs\\t%0,%1,1
> -+ adc\\t%0,%1,%2
> -+ adc\\t%0,%1,%2
> -+ adc\\t%0,%1,%2
> -+ adc\\t%0,%1,%2"
> - [(set_attr "cond" "use")
> - (set_attr "type" "cc_arith")
> -- (set_attr "length" "4,4,4,4,8")])
> -+ (set_attr "length" "4,4,4,4,8,8")])
> -
> - ; combiner-splitter cmp / scc -> cmp / adc
> - (define_split
> -@@ -3015,7 +2997,7 @@ archs4x, archs4xd"
> - DONE;
> - }
> - emit_insn (gen_sub_f (l0, l1, l2));
> -- emit_insn (gen_sbc (h0, h1, h2, gen_rtx_REG (CCmode, CC_REG)));
> -+ emit_insn (gen_sbc (h0, h1, h2));
> - DONE;
> - ")
> -
> -@@ -3030,44 +3012,25 @@ archs4x, archs4xd"
> - (set_attr "type" "cc_arith")
> - (set_attr "length" "4")])
> -
> --; w/c/c comes first (rather than Rcw/0/C_0) to prevent the middle-end
> --; needlessly prioritizing the matching constraint.
> --; Rcw/0/C_0 comes before w/c/L so that the lower latency conditional execution
> --; is used where possible.
> --(define_insn_and_split "sbc"
> -- [(set (match_operand:SI 0 "dest_reg_operand" "=w,Rcw,w,Rcw,w")
> -- (minus:SI (minus:SI (match_operand:SI 1 "nonmemory_operand"
> -- "c,0,c,0,cCal")
> -- (ltu:SI (match_operand:CC_C 3 "cc_use_register")
> -- (const_int 0)))
> -- (match_operand:SI 2 "nonmemory_operand" "c,C_0,L,I,cCal")))]
> -+(define_insn "sbc"
> -+ [(set (match_operand:SI 0 "dest_reg_operand" "=r,r,r,r,r,r")
> -+ (minus:SI
> -+ (minus:SI
> -+ (match_operand:SI 1 "nonmemory_operand" "r, 0,r,0, r,Cal")
> -+ (ltu:SI (reg:CC_C CC_REG) (const_int 0)))
> -+ (match_operand:SI 2 "nonmemory_operand" "r,C_0,L,I,Cal,r")))]
> - "register_operand (operands[1], SImode)
> - || register_operand (operands[2], SImode)"
> - "@
> -- sbc %0,%1,%2
> -- sub.cs %0,%1,1
> -- sbc %0,%1,%2
> -- sbc %0,%1,%2
> -- sbc %0,%1,%2"
> -- ; if we have a bad schedule after sched2, split.
> -- "reload_completed
> -- && !optimize_size && (!TARGET_ARC600_FAMILY)
> -- && arc_scheduling_not_expected ()
> -- && arc_sets_cc_p (prev_nonnote_insn (insn))
> -- /* If next comes a return or other insn that needs a delay slot,
> -- expect the adc to get into the delay slot. */
> -- && next_nonnote_insn (insn)
> -- && !arc_need_delay (next_nonnote_insn (insn))
> -- /* Restore operands before emitting. */
> -- && (extract_insn_cached (insn), 1)"
> -- [(set (match_dup 0) (match_dup 4))
> -- (cond_exec
> -- (ltu (reg:CC_C CC_REG) (const_int 0))
> -- (set (match_dup 0) (plus:SI (match_dup 0) (const_int -1))))]
> -- "operands[4] = simplify_gen_binary (MINUS, SImode, operands[1], operands[2]);"
> -+ sbc\\t%0,%1,%2
> -+ sub.cs\\t%0,%1,1
> -+ sbc\\t%0,%1,%2
> -+ sbc\\t%0,%1,%2
> -+ sbc\\t%0,%1,%2
> -+ sbc\\t%0,%1,%2"
> - [(set_attr "cond" "use")
> - (set_attr "type" "cc_arith")
> -- (set_attr "length" "4,4,4,4,8")])
> -+ (set_attr "length" "4,4,4,4,8,8")])
> -
> - (define_insn "sub_f"
> - [(set (reg:CC CC_REG)
> diff --git a/package/gcc/arc-2020.09-release/0002-libsanitizer-Remove-cyclades-from-libsanitizer.patch b/package/gcc/arc-2020.09-release/0002-libsanitizer-Remove-cyclades-from-libsanitizer.patch
> deleted file mode 100644
> index 051d4db341..0000000000
> --- a/package/gcc/arc-2020.09-release/0002-libsanitizer-Remove-cyclades-from-libsanitizer.patch
> +++ /dev/null
> @@ -1,121 +0,0 @@
> -From 1557c3d919623a95c2aa090d3018c31401f63f88 Mon Sep 17 00:00:00 2001
> -From: Tamar Christina <tamar.christina@arm.com>
> -Date: Fri, 21 May 2021 12:16:56 +0100
> -Subject: [PATCH] libsanitizer: Remove cyclades from libsanitizer
> -
> -The Linux kernel has removed the interface to cyclades from
> -the latest kernel headers[1] due to them being orphaned for the
> -past 13 years.
> -
> -libsanitizer uses this header when compiling against glibc, but
> -glibcs itself doesn't seem to have any references to cyclades.
> -
> -Further more it seems that the driver is broken in the kernel and
> -the firmware doesn't seem to be available anymore.
> -
> -As such since this is breaking the build of libsanitizer (and so the
> -GCC bootstrap[2]) I propose to remove this.
> -
> -[1] https://lkml.org/lkml/2021/3/2/153
> -[2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100379
> -
> -libsanitizer/ChangeLog:
> -
> - PR sanitizer/100379
> - * sanitizer_common/sanitizer_common_interceptors_ioctl.inc: Cherry-pick
> - llvm-project revision f7c5351552387bd43f6ca3631016d7f0dfe0f135.
> - * sanitizer_common/sanitizer_platform_limits_posix.cc: Likewise.
> - * sanitizer_common/sanitizer_platform_limits_posix.h: Likewise.
> ----
> - .../sanitizer_common_interceptors_ioctl.inc | 9 ---------
> - .../sanitizer_platform_limits_posix.cpp | 11 -----------
> - .../sanitizer_platform_limits_posix.h | 10 ----------
> - 3 files changed, 30 deletions(-)
> -
> -diff --git a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
> -index 490a04b2181..42e43a04441 100644
> ---- a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
> -+++ b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
> -@@ -366,15 +366,6 @@ static void ioctl_table_fill() {
> -
> - #if SANITIZER_LINUX && !SANITIZER_ANDROID
> - // _(SIOCDEVPLIP, WRITE, struct_ifreq_sz); // the same as EQL_ENSLAVE
> -- _(CYGETDEFTHRESH, WRITE, sizeof(int));
> -- _(CYGETDEFTIMEOUT, WRITE, sizeof(int));
> -- _(CYGETMON, WRITE, struct_cyclades_monitor_sz);
> -- _(CYGETTHRESH, WRITE, sizeof(int));
> -- _(CYGETTIMEOUT, WRITE, sizeof(int));
> -- _(CYSETDEFTHRESH, NONE, 0);
> -- _(CYSETDEFTIMEOUT, NONE, 0);
> -- _(CYSETTHRESH, NONE, 0);
> -- _(CYSETTIMEOUT, NONE, 0);
> - _(EQL_EMANCIPATE, WRITE, struct_ifreq_sz);
> - _(EQL_ENSLAVE, WRITE, struct_ifreq_sz);
> - _(EQL_GETMASTRCFG, WRITE, struct_ifreq_sz);
> -diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
> -index aa845df4dde..badf6a401cc 100644
> ---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
> -+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
> -@@ -130,7 +130,6 @@ typedef struct user_fpregs elf_fpregset_t;
> - # include <sys/procfs.h>
> - #endif
> - #include <sys/user.h>
> --#include <linux/cyclades.h>
> - #include <linux/if_eql.h>
> - #include <linux/if_plip.h>
> - #include <linux/lp.h>
> -@@ -443,7 +442,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
> -
> - #if SANITIZER_LINUX && !SANITIZER_ANDROID
> - unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct);
> -- unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor);
> - #if EV_VERSION > (0x010000)
> - unsigned struct_input_keymap_entry_sz = sizeof(struct input_keymap_entry);
> - #else
> -@@ -809,15 +807,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
> - #endif // SANITIZER_LINUX
> -
> - #if SANITIZER_LINUX && !SANITIZER_ANDROID
> -- unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH;
> -- unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT;
> -- unsigned IOCTL_CYGETMON = CYGETMON;
> -- unsigned IOCTL_CYGETTHRESH = CYGETTHRESH;
> -- unsigned IOCTL_CYGETTIMEOUT = CYGETTIMEOUT;
> -- unsigned IOCTL_CYSETDEFTHRESH = CYSETDEFTHRESH;
> -- unsigned IOCTL_CYSETDEFTIMEOUT = CYSETDEFTIMEOUT;
> -- unsigned IOCTL_CYSETTHRESH = CYSETTHRESH;
> -- unsigned IOCTL_CYSETTIMEOUT = CYSETTIMEOUT;
> - unsigned IOCTL_EQL_EMANCIPATE = EQL_EMANCIPATE;
> - unsigned IOCTL_EQL_ENSLAVE = EQL_ENSLAVE;
> - unsigned IOCTL_EQL_GETMASTRCFG = EQL_GETMASTRCFG;
> -diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
> -index d82fd5e4005..dc6423bc297 100644
> ---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
> -+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
> -@@ -974,7 +974,6 @@ extern unsigned struct_vt_mode_sz;
> -
> - #if SANITIZER_LINUX && !SANITIZER_ANDROID
> - extern unsigned struct_ax25_parms_struct_sz;
> --extern unsigned struct_cyclades_monitor_sz;
> - extern unsigned struct_input_keymap_entry_sz;
> - extern unsigned struct_ipx_config_data_sz;
> - extern unsigned struct_kbdiacrs_sz;
> -@@ -1319,15 +1318,6 @@ extern unsigned IOCTL_VT_WAITACTIVE;
> - #endif // SANITIZER_LINUX
> -
> - #if SANITIZER_LINUX && !SANITIZER_ANDROID
> --extern unsigned IOCTL_CYGETDEFTHRESH;
> --extern unsigned IOCTL_CYGETDEFTIMEOUT;
> --extern unsigned IOCTL_CYGETMON;
> --extern unsigned IOCTL_CYGETTHRESH;
> --extern unsigned IOCTL_CYGETTIMEOUT;
> --extern unsigned IOCTL_CYSETDEFTHRESH;
> --extern unsigned IOCTL_CYSETDEFTIMEOUT;
> --extern unsigned IOCTL_CYSETTHRESH;
> --extern unsigned IOCTL_CYSETTIMEOUT;
> - extern unsigned IOCTL_EQL_EMANCIPATE;
> - extern unsigned IOCTL_EQL_ENSLAVE;
> - extern unsigned IOCTL_EQL_GETMASTRCFG;
> ---
> -2.31.1
> -
> diff --git a/package/gcc/arc-2020.09-release/0003-fixinc-don-t-fix-machine-names-in-__has_include-.-PR.patch b/package/gcc/arc-2020.09-release/0003-fixinc-don-t-fix-machine-names-in-__has_include-.-PR.patch
> deleted file mode 100644
> index 8b6be49e68..0000000000
> --- a/package/gcc/arc-2020.09-release/0003-fixinc-don-t-fix-machine-names-in-__has_include-.-PR.patch
> +++ /dev/null
> @@ -1,124 +0,0 @@
> -From 65754c50a57e5a891cee75bb744eb93fdb3c443e Mon Sep 17 00:00:00 2001
> -From: Xi Ruoyao <xry111@mengyan1223.wang>
> -Date: Mon, 28 Jun 2021 13:54:58 +0800
> -Subject: [PATCH] fixinc: don't "fix" machine names in __has_include(...)
> - [PR91085]
> -
> -fixincludes/
> -
> - PR other/91085
> - * fixfixes.c (check_has_inc): New static function.
> - (machine_name_fix): Don't replace header names in
> - __has_include(...).
> - * inclhack.def (machine_name): Adjust test.
> - * tests/base/testing.h: Update.
> -
> -Upstream: 6bf383c37e6131a8e247e8a0997d55d65c830b6d
> -Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ----
> - fixincludes/fixfixes.c | 45 ++++++++++++++++++++++++++++++--
> - fixincludes/inclhack.def | 3 ++-
> - fixincludes/tests/base/testing.h | 2 +-
> - 3 files changed, 46 insertions(+), 4 deletions(-)
> -
> -diff --git a/fixincludes/fixfixes.c b/fixincludes/fixfixes.c
> -index 034e15d9985..3ff87812036 100644
> ---- a/fixincludes/fixfixes.c
> -+++ b/fixincludes/fixfixes.c
> -@@ -477,6 +477,39 @@ FIX_PROC_HEAD( char_macro_def_fix )
> - fputs (text, stdout);
> - }
> -
> -+/* Check if the pattern at pos is actually in a "__has_include(...)"
> -+ directive. Return the pointer to the ')' of this
> -+ "__has_include(...)" if it is, NULL otherwise. */
> -+static const char *
> -+check_has_inc (const char *begin, const char *pos, const char *end)
> -+{
> -+ static const char has_inc[] = "__has_include";
> -+ const size_t has_inc_len = sizeof (has_inc) - 1;
> -+ const char *p;
> -+
> -+ for (p = memmem (begin, pos - begin, has_inc, has_inc_len);
> -+ p != NULL;
> -+ p = memmem (p, pos - p, has_inc, has_inc_len))
> -+ {
> -+ p += has_inc_len;
> -+ while (p < end && ISSPACE (*p))
> -+ p++;
> -+
> -+ /* "__has_include" may appear as "defined(__has_include)",
> -+ search for the next appearance then. */
> -+ if (*p != '(')
> -+ continue;
> -+
> -+ /* To avoid too much complexity, just hope there is never a
> -+ ')' in a header name. */
> -+ p = memchr (p, ')', end - p);
> -+ if (p == NULL || p > pos)
> -+ return p;
> -+ }
> -+
> -+ return NULL;
> -+}
> -+
> - /* Fix for machine name #ifdefs that are not in the namespace reserved
> - by the C standard. They won't be defined if compiling with -ansi,
> - and the headers will break. We go to some trouble to only change
> -@@ -524,7 +557,7 @@ FIX_PROC_HEAD( machine_name_fix )
> - /* If the 'name_pat' matches in between base and limit, we have
> - a bogon. It is not worth the hassle of excluding comments
> - because comments on #if/#ifdef lines are rare, and strings on
> -- such lines are illegal.
> -+ such lines are only legal in a "__has_include" directive.
> -
> - REG_NOTBOL means 'base' is not at the beginning of a line, which
> - shouldn't matter since the name_re has no ^ anchor, but let's
> -@@ -544,8 +577,16 @@ FIX_PROC_HEAD( machine_name_fix )
> - break;
> -
> - p = base + match[0].rm_so;
> -- base += match[0].rm_eo;
> -
> -+ /* Check if the match is in __has_include(...) (PR 91085). */
> -+ q = check_has_inc (base, p, limit);
> -+ if (q)
> -+ {
> -+ base = q + 1;
> -+ goto again;
> -+ }
> -+
> -+ base += match[0].rm_eo;
> - /* One more test: if on the same line we have the same string
> - with the appropriate underscores, then leave it alone.
> - We want exactly two leading and trailing underscores. */
> -diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
> -index f58e7771e1c..71bd717c233 100644
> ---- a/fixincludes/inclhack.def
> -+++ b/fixincludes/inclhack.def
> -@@ -3114,7 +3114,8 @@ fix = {
> - c_fix = machine_name;
> -
> - test_text = "/* MACH_DIFF: */\n"
> -- "#if defined( i386 ) || defined( sparc ) || defined( vax )"
> -+ "#if defined( i386 ) || defined( sparc ) || defined( vax ) || "
> -+ "defined( linux ) || __has_include ( <linux.h> )"
> - "\n/* no uniform test, so be careful :-) */";
> - };
> -
> -diff --git a/fixincludes/tests/base/testing.h b/fixincludes/tests/base/testing.h
> -index cf95321fb86..8b3accaf04e 100644
> ---- a/fixincludes/tests/base/testing.h
> -+++ b/fixincludes/tests/base/testing.h
> -@@ -64,7 +64,7 @@ BSD43__IOWR('T', 1) /* Some are multi-line */
> -
> - #if defined( MACHINE_NAME_CHECK )
> - /* MACH_DIFF: */
> --#if defined( i386 ) || defined( sparc ) || defined( vax )
> -+#if defined( i386 ) || defined( sparc ) || defined( vax ) || defined( linux ) || __has_include ( <linux.h> )
> - /* no uniform test, so be careful :-) */
> - #endif /* MACHINE_NAME_CHECK */
> -
> ---
> -2.37.3
> -
> diff --git a/package/gcc/arc-2020.09-release/0100-uclibc-conf.patch b/package/gcc/arc-2020.09-release/0100-uclibc-conf.patch
> deleted file mode 100644
> index d354baf81f..0000000000
> --- a/package/gcc/arc-2020.09-release/0100-uclibc-conf.patch
> +++ /dev/null
> @@ -1,29 +0,0 @@
> -From 326b880b20e5f8187dbda736b4c4c662cbfb00ca Mon Sep 17 00:00:00 2001
> -From: Romain Naour <romain.naour@gmail.com>
> -Date: Tue, 2 May 2017 22:36:15 +0200
> -Subject: [PATCH] uclibc-conf
> -
> -[Romain: convert to git patch]
> -Signed-off-by: Romain Naour <romain.naour@gmail.com>
> ----
> - contrib/regression/objs-gcc.sh | 4 ++++
> - 1 file changed, 4 insertions(+)
> -
> -diff --git a/contrib/regression/objs-gcc.sh b/contrib/regression/objs-gcc.sh
> -index 60b0497..6dc7ead 100755
> ---- a/contrib/regression/objs-gcc.sh
> -+++ b/contrib/regression/objs-gcc.sh
> -@@ -106,6 +106,10 @@ if [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-gnu ]
> - then
> - make all-gdb all-dejagnu all-ld || exit 1
> - make install-gdb install-dejagnu install-ld || exit 1
> -+elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ]
> -+ then
> -+ make all-gdb all-dejagnu all-ld || exit 1
> -+ make install-gdb install-dejagnu install-ld || exit 1
> - elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
> - make bootstrap || exit 1
> - make install || exit 1
> ---
> -2.9.3
> -
> diff --git a/package/gcc/gcc.hash b/package/gcc/gcc.hash
> index 478b0b1620..a2a38a005e 100644
> --- a/package/gcc/gcc.hash
> +++ b/package/gcc/gcc.hash
> @@ -9,8 +9,6 @@ sha512 8fb799dfa2e5de5284edf8f821e3d40c2781e4c570f5adfdb1ca0671fcae3fb7f794ea78
> # From https://gcc.gnu.org/pub/gcc/releases/gcc-13.2.0/sha512.sum
> sha512 d99e4826a70db04504467e349e9fbaedaa5870766cda7c5cab50cdebedc4be755ebca5b789e1232a34a20be1a0b60097de9280efe47bdb71c73251e30b0862a2 gcc-13.2.0.tar.xz
>
> -# Locally calculated (fetched from Github)
> -sha512 b0853e2b1c5998044392023fa653e399e74118c46e616504ac59e1a2cf27620f94434767ce06b6cf4ca3dfb57f81d6eda92752befaf095ea5e564a9181b4659c gcc-arc-2020.09-release.tar.gz
> # Locally calculated (fetched from Github)
> sha512 2de7cf47333a4092b02d3bb98f4206f14966f1d139a724d09cf3b22f8a43ae0c704f33e6477d6367a03c29b265480dc900169e9d417006c5d46f0ae446b8c6f1 gcc-or1k-musl-5.4.0-20170218.tar.gz
>
> diff --git a/package/gcc/gcc.mk b/package/gcc/gcc.mk
> index 93bc46643c..f858b9841f 100644
> --- a/package/gcc/gcc.mk
> +++ b/package/gcc/gcc.mk
> @@ -10,13 +10,8 @@
>
> GCC_VERSION = $(call qstrip,$(BR2_GCC_VERSION))
>
> -ifeq ($(BR2_GCC_VERSION_ARC),y)
> -GCC_SITE = $(call github,foss-for-synopsys-dwc-arc-processors,gcc,$(GCC_VERSION))
> -GCC_SOURCE = gcc-$(GCC_VERSION).tar.gz
> -else
> GCC_SITE = $(BR2_GNU_MIRROR:/=)/gcc/gcc-$(GCC_VERSION)
> GCC_SOURCE = gcc-$(GCC_VERSION).tar.xz
> -endif
>
> HOST_GCC_LICENSE = GPL-2.0, GPL-3.0, LGPL-2.1, LGPL-3.0
> HOST_GCC_LICENSE_FILES = COPYING COPYING3 COPYING.LIB COPYING3.LIB
> --
> 2.30.2
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Buildroot] [PATCH 2/6] package/binutils: remove special arc version
2023-12-31 17:25 ` [Buildroot] [PATCH 2/6] package/binutils: " Waldemar Brodkorb
@ 2023-12-31 20:10 ` Yann E. MORIN
0 siblings, 0 replies; 18+ messages in thread
From: Yann E. MORIN @ 2023-12-31 20:10 UTC (permalink / raw)
To: Waldemar Brodkorb
Cc: Romain Naour, ARC Maintainers, Giulio Benetti, Thomas Petazzoni,
buildroot
Waldemnar, All,
On 2023-12-31 18:25 +0100, Waldemar Brodkorb spake thusly:
> Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
> ---
> package/binutils/Config.in.host | 9 +-
> .../0001-poison-system-directories.patch | 310 ------------------
This removed patch had a check-package exclusion, so that needs to be
removed as well:
$ ./utils/docker-run make check-package
.checkpackageignore:205: ignored file package/binutils/arc-2020.09-release/0001-poison-system-directories.patch is missing
Regards,
Yann E. MORIN.
> package/binutils/binutils.hash | 3 -
> package/binutils/binutils.mk | 10 -
> 4 files changed, 1 insertion(+), 331 deletions(-)
> delete mode 100644 package/binutils/arc-2020.09-release/0001-poison-system-directories.patch
>
> diff --git a/package/binutils/Config.in.host b/package/binutils/Config.in.host
> index bc7dc4443c..7f76e45a70 100644
> --- a/package/binutils/Config.in.host
> +++ b/package/binutils/Config.in.host
> @@ -10,8 +10,7 @@ config BR2_PACKAGE_BINUTILS_HAS_NO_LIBSFRAME
>
> choice
> prompt "Binutils Version"
> - default BR2_BINUTILS_VERSION_2_40_X if !BR2_arc
> - default BR2_BINUTILS_VERSION_ARC if BR2_arc
> + default BR2_BINUTILS_VERSION_2_40_X
> help
> Select the version of binutils you wish to use.
>
> @@ -25,16 +24,10 @@ config BR2_BINUTILS_VERSION_2_40_X
> config BR2_BINUTILS_VERSION_2_41_X
> bool "binutils 2.41"
>
> -config BR2_BINUTILS_VERSION_ARC
> - bool "binutils arc (2.34.50)"
> - depends on BR2_arc
> - select BR2_PACKAGE_BINUTILS_HAS_NO_LIBSFRAME
> -
> endchoice
>
> config BR2_BINUTILS_VERSION
> string
> - default "arc-2020.09-release" if BR2_BINUTILS_VERSION_ARC
> default "2.39" if BR2_BINUTILS_VERSION_2_39_X
> default "2.40" if BR2_BINUTILS_VERSION_2_40_X
> default "2.41" if BR2_BINUTILS_VERSION_2_41_X
> diff --git a/package/binutils/arc-2020.09-release/0001-poison-system-directories.patch b/package/binutils/arc-2020.09-release/0001-poison-system-directories.patch
> deleted file mode 100644
> index 7a76ef2963..0000000000
> --- a/package/binutils/arc-2020.09-release/0001-poison-system-directories.patch
> +++ /dev/null
> @@ -1,310 +0,0 @@
> -From 5f62ad7ce534e3384d6ed8892614979da297bd70 Mon Sep 17 00:00:00 2001
> -From: Evgeniy Didin <Evgeniy.Didin@synopsys.com>
> -Date: Mon, 14 Oct 2019 16:45:15 +0300
> -Subject: [PATCH] [PATCH] poison-system-directories
> -
> -Patch adapted to arc-binutils-gdb-2019.09
> -Signed-off-by: Evgeniy Didin <Evgeniy.Didin@synopsys.com>
> -
> -Patch adapted to binutils 2.23.2 and extended to use
> -BR_COMPILER_PARANOID_UNSAFE_PATH by Thomas Petazzoni.
> -
> -[Romain: rebase on top of 2.26]
> -Signed-off-by: Romain Naour <romain.naour@gmail.com>
> -[Gustavo: adapt to binutils 2.25]
> -Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> -Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
> -
> -Upstream-Status: Inappropriate [distribution: codesourcery]
> -
> -Patch originally created by Mark Hatle, forward-ported to
> -binutils 2.21 by Scott Garman.
> -
> -purpose: warn for uses of system directories when cross linking
> -
> -Code Merged from Sourcery G++ binutils 2.19 - 4.4-277
> -
> -2008-07-02 Joseph Myers <joseph@codesourcery.com>
> -
> - ld/
> - * ld.h (args_type): Add error_poison_system_directories.
> - * ld.texinfo (--error-poison-system-directories): Document.
> - * ldfile.c (ldfile_add_library_path): Check
> - command_line.error_poison_system_directories.
> - * ldmain.c (main): Initialize
> - command_line.error_poison_system_directories.
> - * lexsup.c (enum option_values): Add
> - OPTION_ERROR_POISON_SYSTEM_DIRECTORIES.
> - (ld_options): Add --error-poison-system-directories.
> - (parse_args): Handle new option.
> -
> -2007-06-13 Joseph Myers <joseph@codesourcery.com>
> -
> - ld/
> - * config.in: Regenerate.
> - * ld.h (args_type): Add poison_system_directories.
> - * ld.texinfo (--no-poison-system-directories): Document.
> - * ldfile.c (ldfile_add_library_path): Check
> - command_line.poison_system_directories.
> - * ldmain.c (main): Initialize
> - command_line.poison_system_directories.
> - * lexsup.c (enum option_values): Add
> - OPTION_NO_POISON_SYSTEM_DIRECTORIES.
> - (ld_options): Add --no-poison-system-directories.
> - (parse_args): Handle new option.
> -
> -2007-04-20 Joseph Myers <joseph@codesourcery.com>
> -
> - Merge from Sourcery G++ binutils 2.17:
> -
> - 2007-03-20 Joseph Myers <joseph@codesourcery.com>
> - Based on patch by Mark Hatle <mark.hatle@windriver.com>.
> - ld/
> - * configure.ac (--enable-poison-system-directories): New option.
> - * configure, config.in: Regenerate.
> - * ldfile.c (ldfile_add_library_path): If
> - ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of /lib,
> - /usr/lib, /usr/local/lib or /usr/X11R6/lib.
> -
> -Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
> -Signed-off-by: Scott Garman <scott.a.garman@intel.com>
> ----
> - ld/config.in | 3 +++
> - ld/configure | 14 ++++++++++++++
> - ld/configure.ac | 10 ++++++++++
> - ld/ld.h | 8 ++++++++
> - ld/ld.texi | 12 ++++++++++++
> - ld/ldfile.c | 17 +++++++++++++++++
> - ld/ldlex.h | 2 ++
> - ld/ldmain.c | 2 ++
> - ld/lexsup.c | 21 +++++++++++++++++++++
> - 9 files changed, 89 insertions(+)
> -
> -diff --git a/ld/config.in b/ld/config.in
> -index d93c9b08300..5da2742beac 100644
> ---- a/ld/config.in
> -+++ b/ld/config.in
> -@@ -31,6 +31,9 @@
> - language is requested. */
> - #undef ENABLE_NLS
> -
> -+/* Define to warn for use of native system library directories */
> -+#undef ENABLE_POISON_SYSTEM_DIRECTORIES
> -+
> - /* Additional extension a shared object might have. */
> - #undef EXTRA_SHLIB_EXTENSION
> -
> -diff --git a/ld/configure b/ld/configure
> -index 2d6ca5c0445..563f9921f7f 100755
> ---- a/ld/configure
> -+++ b/ld/configure
> -@@ -823,6 +823,7 @@ with_lib_path
> - enable_targets
> - enable_64_bit_bfd
> - with_sysroot
> -+enable_poison_system_directories
> - enable_gold
> - enable_got
> - enable_compressed_debug_sections
> -@@ -1487,6 +1488,8 @@ Optional Features:
> - --disable-largefile omit support for large files
> - --enable-targets alternative target configurations
> - --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes)
> -+ --enable-poison-system-directories
> -+ warn for use of native system library directories
> - --enable-gold[=ARG] build gold [ARG={default,yes,no}]
> - --enable-got=<type> GOT handling scheme (target, single, negative,
> - multigot)
> -@@ -15804,7 +15807,18 @@ else
> - fi
> -
> -
> -+# Check whether --enable-poison-system-directories was given.
> -+if test "${enable_poison_system_directories+set}" = set; then :
> -+ enableval=$enable_poison_system_directories;
> -+else
> -+ enable_poison_system_directories=no
> -+fi
> -+
> -+if test "x${enable_poison_system_directories}" = "xyes"; then
> -
> -+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
> -+
> -+fi
> -
> - # Check whether --enable-got was given.
> - if test "${enable_got+set}" = set; then :
> -diff --git a/ld/configure.ac b/ld/configure.ac
> -index 41a51bbb7e9..dbaa98a9e17 100644
> ---- a/ld/configure.ac
> -+++ b/ld/configure.ac
> -@@ -94,6 +94,16 @@ AC_SUBST(use_sysroot)
> - AC_SUBST(TARGET_SYSTEM_ROOT)
> - AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
> -
> -+AC_ARG_ENABLE([poison-system-directories],
> -+ AS_HELP_STRING([--enable-poison-system-directories],
> -+ [warn for use of native system library directories]),,
> -+ [enable_poison_system_directories=no])
> -+if test "x${enable_poison_system_directories}" = "xyes"; then
> -+ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
> -+ [1],
> -+ [Define to warn for use of native system library directories])
> -+fi
> -+
> - dnl Use --enable-gold to decide if this linker should be the default.
> - dnl "install_as_default" is set to false if gold is the default linker.
> - dnl "installed_linker" is the installed BFD linker name.
> -diff --git a/ld/ld.h b/ld/ld.h
> -index 55078a9637b..511e9bc34b7 100644
> ---- a/ld/ld.h
> -+++ b/ld/ld.h
> -@@ -180,6 +180,14 @@ typedef struct
> - in the linker script. */
> - bfd_boolean force_group_allocation;
> -
> -+ /* If TRUE (the default) warn for uses of system directories when
> -+ cross linking. */
> -+ bfd_boolean poison_system_directories;
> -+
> -+ /* If TRUE (default FALSE) give an error for uses of system
> -+ directories when cross linking instead of a warning. */
> -+ bfd_boolean error_poison_system_directories;
> -+
> - /* Big or little endian as set on command line. */
> - enum endian_enum endian;
> -
> -diff --git a/ld/ld.texi b/ld/ld.texi
> -index fcbc335c95e..6ba7ebdb32a 100644
> ---- a/ld/ld.texi
> -+++ b/ld/ld.texi
> -@@ -2557,6 +2557,18 @@ string identifying the original linked file does not change.
> -
> - Passing @code{none} for @var{style} disables the setting from any
> - @code{--build-id} options earlier on the command line.
> -+
> -+@kindex --no-poison-system-directories
> -+@item --no-poison-system-directories
> -+Do not warn for @option{-L} options using system directories such as
> -+@file{/usr/lib} when cross linking. This option is intended for use
> -+in chroot environments when such directories contain the correct
> -+libraries for the target system rather than the host.
> -+
> -+@kindex --error-poison-system-directories
> -+@item --error-poison-system-directories
> -+Give an error instead of a warning for @option{-L} options using
> -+system directories when cross linking.
> - @end table
> -
> - @c man end
> -diff --git a/ld/ldfile.c b/ld/ldfile.c
> -index 7f60319390e..0bcc06db964 100644
> ---- a/ld/ldfile.c
> -+++ b/ld/ldfile.c
> -@@ -116,6 +116,23 @@ ldfile_add_library_path (const char *name, bfd_boolean cmdline)
> - new_dirs->name = concat (ld_sysroot, name + strlen ("$SYSROOT"), (const char *) NULL);
> - else
> - new_dirs->name = xstrdup (name);
> -+
> -+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
> -+ if (command_line.poison_system_directories
> -+ && ((!strncmp (name, "/lib", 4))
> -+ || (!strncmp (name, "/usr/lib", 8))
> -+ || (!strncmp (name, "/usr/local/lib", 14))
> -+ || (!strncmp (name, "/usr/X11R6/lib", 14))))
> -+ {
> -+ if (command_line.error_poison_system_directories)
> -+ einfo (_("%X%P: error: library search path \"%s\" is unsafe for "
> -+ "cross-compilation\n"), name);
> -+ else
> -+ einfo (_("%P: warning: library search path \"%s\" is unsafe for "
> -+ "cross-compilation\n"), name);
> -+ }
> -+#endif
> -+
> - }
> -
> - /* Try to open a BFD for a lang_input_statement. */
> -diff --git a/ld/ldlex.h b/ld/ldlex.h
> -index 32a7a6409e8..c02b64bf92f 100644
> ---- a/ld/ldlex.h
> -+++ b/ld/ldlex.h
> -@@ -152,6 +152,8 @@ enum option_values
> - OPTION_NO_PRINT_MAP_DISCARDED,
> - OPTION_NON_CONTIGUOUS_REGIONS,
> - OPTION_NON_CONTIGUOUS_REGIONS_WARNINGS,
> -+ OPTION_NO_POISON_SYSTEM_DIRECTORIES,
> -+ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES,
> - };
> -
> -
> - /* The initial parser states. */
> -diff --git a/ld/ldmain.c b/ld/ldmain.c
> -index 34c19223137..66d2c3f4bcf 100644
> ---- a/ld/ldmain.c
> -+++ b/ld/ldmain.c
> -@@ -270,6 +270,8 @@ main (int argc, char **argv)
> - command_line.warn_mismatch = TRUE;
> - command_line.warn_search_mismatch = TRUE;
> - command_line.check_section_addresses = -1;
> -+ command_line.poison_system_directories = TRUE;
> -+ command_line.error_poison_system_directories = FALSE;
> -
> - /* We initialize DEMANGLING based on the environment variable
> - COLLECT_NO_DEMANGLE. The gcc collect2 program will demangle the
> -diff --git a/ld/lexsup.c b/ld/lexsup.c
> -index 1c15ac29c0c..8b714e10a40 100644
> ---- a/ld/lexsup.c
> -+++ b/ld/lexsup.c
> -@@ -549,6 +549,14 @@ static const struct ld_option ld_options[] =
> - { {"no-print-map-discarded", no_argument, NULL, OPTION_NO_PRINT_MAP_DISCARDED},
> - '\0', NULL, N_("Do not show discarded sections in map file output"),
> - TWO_DASHES },
> -+ { {"no-poison-system-directories", no_argument, NULL,
> -+ OPTION_NO_POISON_SYSTEM_DIRECTORIES},
> -+ '\0', NULL, N_("Do not warn for -L options using system directories"),
> -+ TWO_DASHES },
> -+ { {"error-poison-system-directories", no_argument, NULL,
> -+ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES},
> -+ '\0', NULL, N_("Give an error for -L options using system directories"),
> -+ TWO_DASHES },
> - };
> -
> - #define OPTION_COUNT ARRAY_SIZE (ld_options)
> -@@ -561,6 +569,7 @@ parse_args (unsigned argc, char **argv)
> - int ingroup = 0;
> - char *default_dirlist = NULL;
> - char *shortopts;
> -+ char *BR_paranoid_env;
> - struct option *longopts;
> - struct option *really_longopts;
> - int last_optind;
> -@@ -1549,6 +1558,14 @@ parse_args (unsigned argc, char **argv)
> - }
> - break;
> -
> -+ case OPTION_NO_POISON_SYSTEM_DIRECTORIES:
> -+ command_line.poison_system_directories = FALSE;
> -+ break;
> -+
> -+ case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES:
> -+ command_line.error_poison_system_directories = TRUE;
> -+ break;
> -+
> - case OPTION_PUSH_STATE:
> - input_flags.pushed = xmemdup (&input_flags,
> - sizeof (input_flags),
> -@@ -1600,6 +1617,10 @@ parse_args (unsigned argc, char **argv)
> - command_line.soname = NULL;
> - }
> -
> -+ BR_paranoid_env = getenv("BR_COMPILER_PARANOID_UNSAFE_PATH");
> -+ if (BR_paranoid_env && strlen(BR_paranoid_env) > 0)
> -+ command_line.error_poison_system_directories = TRUE;
> -+
> - while (ingroup)
> - {
> - einfo (_("%P: missing --end-group; added as last command line option\n"));
> ---
> -2.16.2
> -
> diff --git a/package/binutils/binutils.hash b/package/binutils/binutils.hash
> index 564a4c3bd7..f71a238517 100644
> --- a/package/binutils/binutils.hash
> +++ b/package/binutils/binutils.hash
> @@ -3,9 +3,6 @@ sha512 68e038f339a8c21faa19a57bbc447a51c817f47c2e06d740847c6e9cc3396c025d35d536
> sha512 a37e042523bc46494d99d5637c3f3d8f9956d9477b748b3b1f6d7dfbb8d968ed52c932e88a4e946c6f77b8f48f1e1b360ca54c3d298f17193f3b4963472f6925 binutils-2.40.tar.xz
> sha512 5df45d0bd6ddabdce4f35878c041e46a92deef01e7dea5facc97fd65cc06b59abc6fba0eb454b68e571c7e14038dc823fe7f2263843e6e627b7444eaf0fe9374 binutils-2.41.tar.xz
>
> -# Locally calculated (fetched from Github)
> -sha512 76a8227a19218435319c660e4983ea17985194b7f496f163e97543e7f6fd3e9249241fdc05a16ba512fba96a1d846c1f7b080983404d821d6215f10e7f11e238 binutils-gdb-arc-2020.09-release.tar.gz
> -
> # locally computed
> sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING3
> sha256 56bdea73b6145ef6ac5259b3da390b981d840c24cb03b8e1cbc678de7ecfa18d COPYING.LIB
> diff --git a/package/binutils/binutils.mk b/package/binutils/binutils.mk
> index 4bc1b69fa0..73d15b6102 100644
> --- a/package/binutils/binutils.mk
> +++ b/package/binutils/binutils.mk
> @@ -8,19 +8,9 @@
> # If not, we do like other packages
> BINUTILS_VERSION = $(call qstrip,$(BR2_BINUTILS_VERSION))
> ifeq ($(BINUTILS_VERSION),)
> -ifeq ($(BR2_arc),y)
> -BINUTILS_VERSION = arc-2020.09-release
> -else
> BINUTILS_VERSION = 2.40
> -endif
> endif # BINUTILS_VERSION
>
> -ifeq ($(BINUTILS_VERSION),arc-2020.09-release)
> -BINUTILS_SITE = $(call github,foss-for-synopsys-dwc-arc-processors,binutils-gdb,$(BINUTILS_VERSION))
> -BINUTILS_SOURCE = binutils-gdb-$(BINUTILS_VERSION).tar.gz
> -BINUTILS_FROM_GIT = y
> -endif
> -
> BINUTILS_SITE ?= $(BR2_GNU_MIRROR)/binutils
> BINUTILS_SOURCE ?= binutils-$(BINUTILS_VERSION).tar.xz
> BINUTILS_EXTRA_CONFIG_OPTIONS = $(call qstrip,$(BR2_BINUTILS_EXTRA_CONFIG_OPTIONS))
> --
> 2.30.2
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Buildroot] [PATCH 1/6] package/gcc: remove special arc version
2023-12-31 17:25 ` [Buildroot] [PATCH 1/6] package/gcc: remove special arc version Waldemar Brodkorb
2023-12-31 20:02 ` Yann E. MORIN
@ 2023-12-31 20:13 ` Yann E. MORIN
1 sibling, 0 replies; 18+ messages in thread
From: Yann E. MORIN @ 2023-12-31 20:13 UTC (permalink / raw)
To: Waldemar Brodkorb
Cc: Romain Naour, ARC Maintainers, Giulio Benetti, Thomas Petazzoni,
buildroot
Waldemar, All,
On 2023-12-31 18:25 +0100, Waldemar Brodkorb spake thusly:
> Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
> ---
> package/gcc/Config.in.host | 9 -
> .../0001-arc-Refurbish-adc-sbc-patterns.patch | 243 ------------------
> ...er-Remove-cyclades-from-libsanitizer.patch | 121 ---------
> ...-machine-names-in-__has_include-.-PR.patch | 124 ---------
> .../0100-uclibc-conf.patch | 29 ---
Patches 0001, 0002, and 0100 have check-package exclusions, that also
need to be removed (see my reply to the binutils patch).
Regards,
Yann E. MORIN.
> package/gcc/gcc.hash | 2 -
> package/gcc/gcc.mk | 5 -
> 7 files changed, 533 deletions(-)
> delete mode 100644 package/gcc/arc-2020.09-release/0001-arc-Refurbish-adc-sbc-patterns.patch
> delete mode 100644 package/gcc/arc-2020.09-release/0002-libsanitizer-Remove-cyclades-from-libsanitizer.patch
> delete mode 100644 package/gcc/arc-2020.09-release/0003-fixinc-don-t-fix-machine-names-in-__has_include-.-PR.patch
> delete mode 100644 package/gcc/arc-2020.09-release/0100-uclibc-conf.patch
>
> diff --git a/package/gcc/Config.in.host b/package/gcc/Config.in.host
> index fd721088ec..db6f378d6a 100644
> --- a/package/gcc/Config.in.host
> +++ b/package/gcc/Config.in.host
> @@ -2,19 +2,11 @@ comment "GCC Options"
>
> choice
> prompt "GCC compiler Version"
> - default BR2_GCC_VERSION_ARC if BR2_GCC_VERSION_4_8_ARC # legacy
> - default BR2_GCC_VERSION_ARC if BR2_arc
> default BR2_GCC_VERSION_POWERPC_SPE if BR2_POWERPC_CPU_HAS_SPE
> default BR2_GCC_VERSION_12_X
> help
> Select the version of gcc you wish to use.
>
> -config BR2_GCC_VERSION_ARC
> - bool "gcc arc (10.x)"
> - # Only supported architecture
> - depends on BR2_arc
> - select BR2_TOOLCHAIN_GCC_AT_LEAST_10
> -
> config BR2_GCC_VERSION_POWERPC_SPE
> bool "gcc powerpc spe"
> # powerpc spe support has been deprecated since gcc 8.x.
> @@ -81,7 +73,6 @@ config BR2_GCC_VERSION
> default "11.4.0" if BR2_GCC_VERSION_11_X
> default "12.3.0" if BR2_GCC_VERSION_12_X
> default "13.2.0" if BR2_GCC_VERSION_13_X
> - default "arc-2020.09-release" if BR2_GCC_VERSION_ARC
>
> config BR2_EXTRA_GCC_CONFIG_OPTIONS
> string "Additional gcc options"
> diff --git a/package/gcc/arc-2020.09-release/0001-arc-Refurbish-adc-sbc-patterns.patch b/package/gcc/arc-2020.09-release/0001-arc-Refurbish-adc-sbc-patterns.patch
> deleted file mode 100644
> index 3292b26a4e..0000000000
> --- a/package/gcc/arc-2020.09-release/0001-arc-Refurbish-adc-sbc-patterns.patch
> +++ /dev/null
> @@ -1,243 +0,0 @@
> -From b92c22b144d063c4436a6693045ceb57d344c495 Mon Sep 17 00:00:00 2001
> -From: Claudiu Zissulescu <claziss@synopsys.com>
> -Date: Wed, 11 Nov 2020 12:31:10 +0200
> -Subject: [PATCH] arc: Refurbish adc/sbc patterns
> -
> -The adc/sbc patterns were unecessary spliting, remove that and
> -associated functions.
> -
> -gcc/ChangeLog:
> -
> -2020-10-11 Claudiu Zissulescu <claziss@synopsys.com>
> -
> - * config/arc/arc-protos.h (arc_scheduling_not_expected): Remove
> - it.
> - (arc_sets_cc_p): Likewise.
> - (arc_need_delay): Likewise.
> - * config/arc/arc.c (arc_sets_cc_p): Likewise.
> - (arc_need_delay): Likewise.
> - (arc_scheduling_not_expected): Likewise.
> - * config/arc/arc.md: Convert adc/sbc patterns to simple
> - instruction definitions.
> -
> -Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com>
> -
> -Downloaded from upstream commit
> -https://github.com/foss-for-synopsys-dwc-arc-processors/gcc/commit/b92c22b144d063c4436a6693045ceb57d344c495
> -
> -Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> ----
> - gcc/config/arc/arc-protos.h | 3 --
> - gcc/config/arc/arc.c | 53 ---------------------
> - gcc/config/arc/arc.md | 95 +++++++++++--------------------------
> - 3 files changed, 29 insertions(+), 122 deletions(-)
> -
> -diff --git a/gcc/config/arc/arc-protos.h b/gcc/config/arc/arc-protos.h
> -index c72d78e3b9e..de4cf47c818 100644
> ---- a/gcc/config/arc/arc-protos.h
> -+++ b/gcc/config/arc/arc-protos.h
> -@@ -90,10 +90,7 @@ extern void split_subsi (rtx *);
> - extern void arc_split_move (rtx *);
> - extern const char *arc_short_long (rtx_insn *insn, const char *, const char *);
> - extern rtx arc_regno_use_in (unsigned int, rtx);
> --extern bool arc_scheduling_not_expected (void);
> --extern bool arc_sets_cc_p (rtx_insn *insn);
> - extern int arc_label_align (rtx_insn *label);
> --extern bool arc_need_delay (rtx_insn *insn);
> - extern bool arc_text_label (rtx_insn *insn);
> -
> - extern bool arc_short_comparison_p (rtx, int);
> -diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c
> -index 5a7b0cb6696..c3ee9181f93 100644
> ---- a/gcc/config/arc/arc.c
> -+++ b/gcc/config/arc/arc.c
> -@@ -10341,59 +10341,6 @@ arc_attr_type (rtx_insn *insn)
> - return get_attr_type (insn);
> - }
> -
> --/* Return true if insn sets the condition codes. */
> --
> --bool
> --arc_sets_cc_p (rtx_insn *insn)
> --{
> -- if (NONJUMP_INSN_P (insn))
> -- if (rtx_sequence *seq = dyn_cast <rtx_sequence *> (PATTERN (insn)))
> -- insn = seq->insn (seq->len () - 1);
> -- return arc_attr_type (insn) == TYPE_COMPARE;
> --}
> --
> --/* Return true if INSN is an instruction with a delay slot we may want
> -- to fill. */
> --
> --bool
> --arc_need_delay (rtx_insn *insn)
> --{
> -- rtx_insn *next;
> --
> -- if (!flag_delayed_branch)
> -- return false;
> -- /* The return at the end of a function needs a delay slot. */
> -- if (NONJUMP_INSN_P (insn) && GET_CODE (PATTERN (insn)) == USE
> -- && (!(next = next_active_insn (insn))
> -- || ((!NONJUMP_INSN_P (next) || GET_CODE (PATTERN (next)) != SEQUENCE)
> -- && arc_attr_type (next) == TYPE_RETURN))
> -- && (!TARGET_PAD_RETURN
> -- || (prev_active_insn (insn)
> -- && prev_active_insn (prev_active_insn (insn))
> -- && prev_active_insn (prev_active_insn (prev_active_insn (insn))))))
> -- return true;
> -- if (NONJUMP_INSN_P (insn)
> -- ? (GET_CODE (PATTERN (insn)) == USE
> -- || GET_CODE (PATTERN (insn)) == CLOBBER
> -- || GET_CODE (PATTERN (insn)) == SEQUENCE)
> -- : JUMP_P (insn)
> -- ? (GET_CODE (PATTERN (insn)) == ADDR_VEC
> -- || GET_CODE (PATTERN (insn)) == ADDR_DIFF_VEC)
> -- : !CALL_P (insn))
> -- return false;
> -- return num_delay_slots (insn) != 0;
> --}
> --
> --/* Return true if the scheduling pass(es) has/have already run,
> -- i.e. where possible, we should try to mitigate high latencies
> -- by different instruction selection. */
> --
> --bool
> --arc_scheduling_not_expected (void)
> --{
> -- return cfun->machine->arc_reorg_started;
> --}
> --
> - /* Code has a minimum p2 alignment of 1, which we must restore after
> - an ADDR_DIFF_VEC. */
> -
> -diff --git a/gcc/config/arc/arc.md b/gcc/config/arc/arc.md
> -index f91adbc0d94..c635b69ddd5 100644
> ---- a/gcc/config/arc/arc.md
> -+++ b/gcc/config/arc/arc.md
> -@@ -2847,43 +2847,25 @@ archs4x, archs4xd"
> - (set_attr "type" "compare")
> - (set_attr "length" "4,4,8")])
> -
> --; w/c/c comes first (rather than w/0/C_0) to prevent the middle-end
> --; needlessly prioritizing the matching constraint.
> --; Rcw/0/C_0 comes before w/c/L so that the lower latency conditional
> --; execution is used where possible.
> --(define_insn_and_split "adc"
> -- [(set (match_operand:SI 0 "dest_reg_operand" "=w,Rcw,w,Rcw,w")
> -- (plus:SI (plus:SI (ltu:SI (reg:CC_C CC_REG) (const_int 0))
> -- (match_operand:SI 1 "nonmemory_operand"
> -- "%c,0,c,0,cCal"))
> -- (match_operand:SI 2 "nonmemory_operand" "c,C_0,L,I,cCal")))]
> -+(define_insn "adc"
> -+ [(set (match_operand:SI 0 "register_operand" "=r, r,r,r, r,r")
> -+ (plus:SI
> -+ (plus:SI
> -+ (ltu:SI (reg:CC_C CC_REG) (const_int 0))
> -+ (match_operand:SI 1 "nonmemory_operand" "%r, 0,r,0,Cal,r"))
> -+ (match_operand:SI 2 "nonmemory_operand" "r,C_0,L,I, r,Cal")))]
> - "register_operand (operands[1], SImode)
> - || register_operand (operands[2], SImode)"
> - "@
> -- adc %0,%1,%2
> -- add.cs %0,%1,1
> -- adc %0,%1,%2
> -- adc %0,%1,%2
> -- adc %0,%1,%2"
> -- ; if we have a bad schedule after sched2, split.
> -- "reload_completed
> -- && !optimize_size && (!TARGET_ARC600_FAMILY)
> -- && arc_scheduling_not_expected ()
> -- && arc_sets_cc_p (prev_nonnote_insn (insn))
> -- /* If next comes a return or other insn that needs a delay slot,
> -- expect the adc to get into the delay slot. */
> -- && next_nonnote_insn (insn)
> -- && !arc_need_delay (next_nonnote_insn (insn))
> -- /* Restore operands before emitting. */
> -- && (extract_insn_cached (insn), 1)"
> -- [(set (match_dup 0) (match_dup 3))
> -- (cond_exec
> -- (ltu (reg:CC_C CC_REG) (const_int 0))
> -- (set (match_dup 0) (plus:SI (match_dup 0) (const_int 1))))]
> -- "operands[3] = simplify_gen_binary (PLUS, SImode, operands[1], operands[2]);"
> -+ adc\\t%0,%1,%2
> -+ add.cs\\t%0,%1,1
> -+ adc\\t%0,%1,%2
> -+ adc\\t%0,%1,%2
> -+ adc\\t%0,%1,%2
> -+ adc\\t%0,%1,%2"
> - [(set_attr "cond" "use")
> - (set_attr "type" "cc_arith")
> -- (set_attr "length" "4,4,4,4,8")])
> -+ (set_attr "length" "4,4,4,4,8,8")])
> -
> - ; combiner-splitter cmp / scc -> cmp / adc
> - (define_split
> -@@ -3015,7 +2997,7 @@ archs4x, archs4xd"
> - DONE;
> - }
> - emit_insn (gen_sub_f (l0, l1, l2));
> -- emit_insn (gen_sbc (h0, h1, h2, gen_rtx_REG (CCmode, CC_REG)));
> -+ emit_insn (gen_sbc (h0, h1, h2));
> - DONE;
> - ")
> -
> -@@ -3030,44 +3012,25 @@ archs4x, archs4xd"
> - (set_attr "type" "cc_arith")
> - (set_attr "length" "4")])
> -
> --; w/c/c comes first (rather than Rcw/0/C_0) to prevent the middle-end
> --; needlessly prioritizing the matching constraint.
> --; Rcw/0/C_0 comes before w/c/L so that the lower latency conditional execution
> --; is used where possible.
> --(define_insn_and_split "sbc"
> -- [(set (match_operand:SI 0 "dest_reg_operand" "=w,Rcw,w,Rcw,w")
> -- (minus:SI (minus:SI (match_operand:SI 1 "nonmemory_operand"
> -- "c,0,c,0,cCal")
> -- (ltu:SI (match_operand:CC_C 3 "cc_use_register")
> -- (const_int 0)))
> -- (match_operand:SI 2 "nonmemory_operand" "c,C_0,L,I,cCal")))]
> -+(define_insn "sbc"
> -+ [(set (match_operand:SI 0 "dest_reg_operand" "=r,r,r,r,r,r")
> -+ (minus:SI
> -+ (minus:SI
> -+ (match_operand:SI 1 "nonmemory_operand" "r, 0,r,0, r,Cal")
> -+ (ltu:SI (reg:CC_C CC_REG) (const_int 0)))
> -+ (match_operand:SI 2 "nonmemory_operand" "r,C_0,L,I,Cal,r")))]
> - "register_operand (operands[1], SImode)
> - || register_operand (operands[2], SImode)"
> - "@
> -- sbc %0,%1,%2
> -- sub.cs %0,%1,1
> -- sbc %0,%1,%2
> -- sbc %0,%1,%2
> -- sbc %0,%1,%2"
> -- ; if we have a bad schedule after sched2, split.
> -- "reload_completed
> -- && !optimize_size && (!TARGET_ARC600_FAMILY)
> -- && arc_scheduling_not_expected ()
> -- && arc_sets_cc_p (prev_nonnote_insn (insn))
> -- /* If next comes a return or other insn that needs a delay slot,
> -- expect the adc to get into the delay slot. */
> -- && next_nonnote_insn (insn)
> -- && !arc_need_delay (next_nonnote_insn (insn))
> -- /* Restore operands before emitting. */
> -- && (extract_insn_cached (insn), 1)"
> -- [(set (match_dup 0) (match_dup 4))
> -- (cond_exec
> -- (ltu (reg:CC_C CC_REG) (const_int 0))
> -- (set (match_dup 0) (plus:SI (match_dup 0) (const_int -1))))]
> -- "operands[4] = simplify_gen_binary (MINUS, SImode, operands[1], operands[2]);"
> -+ sbc\\t%0,%1,%2
> -+ sub.cs\\t%0,%1,1
> -+ sbc\\t%0,%1,%2
> -+ sbc\\t%0,%1,%2
> -+ sbc\\t%0,%1,%2
> -+ sbc\\t%0,%1,%2"
> - [(set_attr "cond" "use")
> - (set_attr "type" "cc_arith")
> -- (set_attr "length" "4,4,4,4,8")])
> -+ (set_attr "length" "4,4,4,4,8,8")])
> -
> - (define_insn "sub_f"
> - [(set (reg:CC CC_REG)
> diff --git a/package/gcc/arc-2020.09-release/0002-libsanitizer-Remove-cyclades-from-libsanitizer.patch b/package/gcc/arc-2020.09-release/0002-libsanitizer-Remove-cyclades-from-libsanitizer.patch
> deleted file mode 100644
> index 051d4db341..0000000000
> --- a/package/gcc/arc-2020.09-release/0002-libsanitizer-Remove-cyclades-from-libsanitizer.patch
> +++ /dev/null
> @@ -1,121 +0,0 @@
> -From 1557c3d919623a95c2aa090d3018c31401f63f88 Mon Sep 17 00:00:00 2001
> -From: Tamar Christina <tamar.christina@arm.com>
> -Date: Fri, 21 May 2021 12:16:56 +0100
> -Subject: [PATCH] libsanitizer: Remove cyclades from libsanitizer
> -
> -The Linux kernel has removed the interface to cyclades from
> -the latest kernel headers[1] due to them being orphaned for the
> -past 13 years.
> -
> -libsanitizer uses this header when compiling against glibc, but
> -glibcs itself doesn't seem to have any references to cyclades.
> -
> -Further more it seems that the driver is broken in the kernel and
> -the firmware doesn't seem to be available anymore.
> -
> -As such since this is breaking the build of libsanitizer (and so the
> -GCC bootstrap[2]) I propose to remove this.
> -
> -[1] https://lkml.org/lkml/2021/3/2/153
> -[2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100379
> -
> -libsanitizer/ChangeLog:
> -
> - PR sanitizer/100379
> - * sanitizer_common/sanitizer_common_interceptors_ioctl.inc: Cherry-pick
> - llvm-project revision f7c5351552387bd43f6ca3631016d7f0dfe0f135.
> - * sanitizer_common/sanitizer_platform_limits_posix.cc: Likewise.
> - * sanitizer_common/sanitizer_platform_limits_posix.h: Likewise.
> ----
> - .../sanitizer_common_interceptors_ioctl.inc | 9 ---------
> - .../sanitizer_platform_limits_posix.cpp | 11 -----------
> - .../sanitizer_platform_limits_posix.h | 10 ----------
> - 3 files changed, 30 deletions(-)
> -
> -diff --git a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
> -index 490a04b2181..42e43a04441 100644
> ---- a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
> -+++ b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
> -@@ -366,15 +366,6 @@ static void ioctl_table_fill() {
> -
> - #if SANITIZER_LINUX && !SANITIZER_ANDROID
> - // _(SIOCDEVPLIP, WRITE, struct_ifreq_sz); // the same as EQL_ENSLAVE
> -- _(CYGETDEFTHRESH, WRITE, sizeof(int));
> -- _(CYGETDEFTIMEOUT, WRITE, sizeof(int));
> -- _(CYGETMON, WRITE, struct_cyclades_monitor_sz);
> -- _(CYGETTHRESH, WRITE, sizeof(int));
> -- _(CYGETTIMEOUT, WRITE, sizeof(int));
> -- _(CYSETDEFTHRESH, NONE, 0);
> -- _(CYSETDEFTIMEOUT, NONE, 0);
> -- _(CYSETTHRESH, NONE, 0);
> -- _(CYSETTIMEOUT, NONE, 0);
> - _(EQL_EMANCIPATE, WRITE, struct_ifreq_sz);
> - _(EQL_ENSLAVE, WRITE, struct_ifreq_sz);
> - _(EQL_GETMASTRCFG, WRITE, struct_ifreq_sz);
> -diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
> -index aa845df4dde..badf6a401cc 100644
> ---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
> -+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
> -@@ -130,7 +130,6 @@ typedef struct user_fpregs elf_fpregset_t;
> - # include <sys/procfs.h>
> - #endif
> - #include <sys/user.h>
> --#include <linux/cyclades.h>
> - #include <linux/if_eql.h>
> - #include <linux/if_plip.h>
> - #include <linux/lp.h>
> -@@ -443,7 +442,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
> -
> - #if SANITIZER_LINUX && !SANITIZER_ANDROID
> - unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct);
> -- unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor);
> - #if EV_VERSION > (0x010000)
> - unsigned struct_input_keymap_entry_sz = sizeof(struct input_keymap_entry);
> - #else
> -@@ -809,15 +807,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
> - #endif // SANITIZER_LINUX
> -
> - #if SANITIZER_LINUX && !SANITIZER_ANDROID
> -- unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH;
> -- unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT;
> -- unsigned IOCTL_CYGETMON = CYGETMON;
> -- unsigned IOCTL_CYGETTHRESH = CYGETTHRESH;
> -- unsigned IOCTL_CYGETTIMEOUT = CYGETTIMEOUT;
> -- unsigned IOCTL_CYSETDEFTHRESH = CYSETDEFTHRESH;
> -- unsigned IOCTL_CYSETDEFTIMEOUT = CYSETDEFTIMEOUT;
> -- unsigned IOCTL_CYSETTHRESH = CYSETTHRESH;
> -- unsigned IOCTL_CYSETTIMEOUT = CYSETTIMEOUT;
> - unsigned IOCTL_EQL_EMANCIPATE = EQL_EMANCIPATE;
> - unsigned IOCTL_EQL_ENSLAVE = EQL_ENSLAVE;
> - unsigned IOCTL_EQL_GETMASTRCFG = EQL_GETMASTRCFG;
> -diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
> -index d82fd5e4005..dc6423bc297 100644
> ---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
> -+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
> -@@ -974,7 +974,6 @@ extern unsigned struct_vt_mode_sz;
> -
> - #if SANITIZER_LINUX && !SANITIZER_ANDROID
> - extern unsigned struct_ax25_parms_struct_sz;
> --extern unsigned struct_cyclades_monitor_sz;
> - extern unsigned struct_input_keymap_entry_sz;
> - extern unsigned struct_ipx_config_data_sz;
> - extern unsigned struct_kbdiacrs_sz;
> -@@ -1319,15 +1318,6 @@ extern unsigned IOCTL_VT_WAITACTIVE;
> - #endif // SANITIZER_LINUX
> -
> - #if SANITIZER_LINUX && !SANITIZER_ANDROID
> --extern unsigned IOCTL_CYGETDEFTHRESH;
> --extern unsigned IOCTL_CYGETDEFTIMEOUT;
> --extern unsigned IOCTL_CYGETMON;
> --extern unsigned IOCTL_CYGETTHRESH;
> --extern unsigned IOCTL_CYGETTIMEOUT;
> --extern unsigned IOCTL_CYSETDEFTHRESH;
> --extern unsigned IOCTL_CYSETDEFTIMEOUT;
> --extern unsigned IOCTL_CYSETTHRESH;
> --extern unsigned IOCTL_CYSETTIMEOUT;
> - extern unsigned IOCTL_EQL_EMANCIPATE;
> - extern unsigned IOCTL_EQL_ENSLAVE;
> - extern unsigned IOCTL_EQL_GETMASTRCFG;
> ---
> -2.31.1
> -
> diff --git a/package/gcc/arc-2020.09-release/0003-fixinc-don-t-fix-machine-names-in-__has_include-.-PR.patch b/package/gcc/arc-2020.09-release/0003-fixinc-don-t-fix-machine-names-in-__has_include-.-PR.patch
> deleted file mode 100644
> index 8b6be49e68..0000000000
> --- a/package/gcc/arc-2020.09-release/0003-fixinc-don-t-fix-machine-names-in-__has_include-.-PR.patch
> +++ /dev/null
> @@ -1,124 +0,0 @@
> -From 65754c50a57e5a891cee75bb744eb93fdb3c443e Mon Sep 17 00:00:00 2001
> -From: Xi Ruoyao <xry111@mengyan1223.wang>
> -Date: Mon, 28 Jun 2021 13:54:58 +0800
> -Subject: [PATCH] fixinc: don't "fix" machine names in __has_include(...)
> - [PR91085]
> -
> -fixincludes/
> -
> - PR other/91085
> - * fixfixes.c (check_has_inc): New static function.
> - (machine_name_fix): Don't replace header names in
> - __has_include(...).
> - * inclhack.def (machine_name): Adjust test.
> - * tests/base/testing.h: Update.
> -
> -Upstream: 6bf383c37e6131a8e247e8a0997d55d65c830b6d
> -Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ----
> - fixincludes/fixfixes.c | 45 ++++++++++++++++++++++++++++++--
> - fixincludes/inclhack.def | 3 ++-
> - fixincludes/tests/base/testing.h | 2 +-
> - 3 files changed, 46 insertions(+), 4 deletions(-)
> -
> -diff --git a/fixincludes/fixfixes.c b/fixincludes/fixfixes.c
> -index 034e15d9985..3ff87812036 100644
> ---- a/fixincludes/fixfixes.c
> -+++ b/fixincludes/fixfixes.c
> -@@ -477,6 +477,39 @@ FIX_PROC_HEAD( char_macro_def_fix )
> - fputs (text, stdout);
> - }
> -
> -+/* Check if the pattern at pos is actually in a "__has_include(...)"
> -+ directive. Return the pointer to the ')' of this
> -+ "__has_include(...)" if it is, NULL otherwise. */
> -+static const char *
> -+check_has_inc (const char *begin, const char *pos, const char *end)
> -+{
> -+ static const char has_inc[] = "__has_include";
> -+ const size_t has_inc_len = sizeof (has_inc) - 1;
> -+ const char *p;
> -+
> -+ for (p = memmem (begin, pos - begin, has_inc, has_inc_len);
> -+ p != NULL;
> -+ p = memmem (p, pos - p, has_inc, has_inc_len))
> -+ {
> -+ p += has_inc_len;
> -+ while (p < end && ISSPACE (*p))
> -+ p++;
> -+
> -+ /* "__has_include" may appear as "defined(__has_include)",
> -+ search for the next appearance then. */
> -+ if (*p != '(')
> -+ continue;
> -+
> -+ /* To avoid too much complexity, just hope there is never a
> -+ ')' in a header name. */
> -+ p = memchr (p, ')', end - p);
> -+ if (p == NULL || p > pos)
> -+ return p;
> -+ }
> -+
> -+ return NULL;
> -+}
> -+
> - /* Fix for machine name #ifdefs that are not in the namespace reserved
> - by the C standard. They won't be defined if compiling with -ansi,
> - and the headers will break. We go to some trouble to only change
> -@@ -524,7 +557,7 @@ FIX_PROC_HEAD( machine_name_fix )
> - /* If the 'name_pat' matches in between base and limit, we have
> - a bogon. It is not worth the hassle of excluding comments
> - because comments on #if/#ifdef lines are rare, and strings on
> -- such lines are illegal.
> -+ such lines are only legal in a "__has_include" directive.
> -
> - REG_NOTBOL means 'base' is not at the beginning of a line, which
> - shouldn't matter since the name_re has no ^ anchor, but let's
> -@@ -544,8 +577,16 @@ FIX_PROC_HEAD( machine_name_fix )
> - break;
> -
> - p = base + match[0].rm_so;
> -- base += match[0].rm_eo;
> -
> -+ /* Check if the match is in __has_include(...) (PR 91085). */
> -+ q = check_has_inc (base, p, limit);
> -+ if (q)
> -+ {
> -+ base = q + 1;
> -+ goto again;
> -+ }
> -+
> -+ base += match[0].rm_eo;
> - /* One more test: if on the same line we have the same string
> - with the appropriate underscores, then leave it alone.
> - We want exactly two leading and trailing underscores. */
> -diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
> -index f58e7771e1c..71bd717c233 100644
> ---- a/fixincludes/inclhack.def
> -+++ b/fixincludes/inclhack.def
> -@@ -3114,7 +3114,8 @@ fix = {
> - c_fix = machine_name;
> -
> - test_text = "/* MACH_DIFF: */\n"
> -- "#if defined( i386 ) || defined( sparc ) || defined( vax )"
> -+ "#if defined( i386 ) || defined( sparc ) || defined( vax ) || "
> -+ "defined( linux ) || __has_include ( <linux.h> )"
> - "\n/* no uniform test, so be careful :-) */";
> - };
> -
> -diff --git a/fixincludes/tests/base/testing.h b/fixincludes/tests/base/testing.h
> -index cf95321fb86..8b3accaf04e 100644
> ---- a/fixincludes/tests/base/testing.h
> -+++ b/fixincludes/tests/base/testing.h
> -@@ -64,7 +64,7 @@ BSD43__IOWR('T', 1) /* Some are multi-line */
> -
> - #if defined( MACHINE_NAME_CHECK )
> - /* MACH_DIFF: */
> --#if defined( i386 ) || defined( sparc ) || defined( vax )
> -+#if defined( i386 ) || defined( sparc ) || defined( vax ) || defined( linux ) || __has_include ( <linux.h> )
> - /* no uniform test, so be careful :-) */
> - #endif /* MACHINE_NAME_CHECK */
> -
> ---
> -2.37.3
> -
> diff --git a/package/gcc/arc-2020.09-release/0100-uclibc-conf.patch b/package/gcc/arc-2020.09-release/0100-uclibc-conf.patch
> deleted file mode 100644
> index d354baf81f..0000000000
> --- a/package/gcc/arc-2020.09-release/0100-uclibc-conf.patch
> +++ /dev/null
> @@ -1,29 +0,0 @@
> -From 326b880b20e5f8187dbda736b4c4c662cbfb00ca Mon Sep 17 00:00:00 2001
> -From: Romain Naour <romain.naour@gmail.com>
> -Date: Tue, 2 May 2017 22:36:15 +0200
> -Subject: [PATCH] uclibc-conf
> -
> -[Romain: convert to git patch]
> -Signed-off-by: Romain Naour <romain.naour@gmail.com>
> ----
> - contrib/regression/objs-gcc.sh | 4 ++++
> - 1 file changed, 4 insertions(+)
> -
> -diff --git a/contrib/regression/objs-gcc.sh b/contrib/regression/objs-gcc.sh
> -index 60b0497..6dc7ead 100755
> ---- a/contrib/regression/objs-gcc.sh
> -+++ b/contrib/regression/objs-gcc.sh
> -@@ -106,6 +106,10 @@ if [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-gnu ]
> - then
> - make all-gdb all-dejagnu all-ld || exit 1
> - make install-gdb install-dejagnu install-ld || exit 1
> -+elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ]
> -+ then
> -+ make all-gdb all-dejagnu all-ld || exit 1
> -+ make install-gdb install-dejagnu install-ld || exit 1
> - elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
> - make bootstrap || exit 1
> - make install || exit 1
> ---
> -2.9.3
> -
> diff --git a/package/gcc/gcc.hash b/package/gcc/gcc.hash
> index 478b0b1620..a2a38a005e 100644
> --- a/package/gcc/gcc.hash
> +++ b/package/gcc/gcc.hash
> @@ -9,8 +9,6 @@ sha512 8fb799dfa2e5de5284edf8f821e3d40c2781e4c570f5adfdb1ca0671fcae3fb7f794ea78
> # From https://gcc.gnu.org/pub/gcc/releases/gcc-13.2.0/sha512.sum
> sha512 d99e4826a70db04504467e349e9fbaedaa5870766cda7c5cab50cdebedc4be755ebca5b789e1232a34a20be1a0b60097de9280efe47bdb71c73251e30b0862a2 gcc-13.2.0.tar.xz
>
> -# Locally calculated (fetched from Github)
> -sha512 b0853e2b1c5998044392023fa653e399e74118c46e616504ac59e1a2cf27620f94434767ce06b6cf4ca3dfb57f81d6eda92752befaf095ea5e564a9181b4659c gcc-arc-2020.09-release.tar.gz
> # Locally calculated (fetched from Github)
> sha512 2de7cf47333a4092b02d3bb98f4206f14966f1d139a724d09cf3b22f8a43ae0c704f33e6477d6367a03c29b265480dc900169e9d417006c5d46f0ae446b8c6f1 gcc-or1k-musl-5.4.0-20170218.tar.gz
>
> diff --git a/package/gcc/gcc.mk b/package/gcc/gcc.mk
> index 93bc46643c..f858b9841f 100644
> --- a/package/gcc/gcc.mk
> +++ b/package/gcc/gcc.mk
> @@ -10,13 +10,8 @@
>
> GCC_VERSION = $(call qstrip,$(BR2_GCC_VERSION))
>
> -ifeq ($(BR2_GCC_VERSION_ARC),y)
> -GCC_SITE = $(call github,foss-for-synopsys-dwc-arc-processors,gcc,$(GCC_VERSION))
> -GCC_SOURCE = gcc-$(GCC_VERSION).tar.gz
> -else
> GCC_SITE = $(BR2_GNU_MIRROR:/=)/gcc/gcc-$(GCC_VERSION)
> GCC_SOURCE = gcc-$(GCC_VERSION).tar.xz
> -endif
>
> HOST_GCC_LICENSE = GPL-2.0, GPL-3.0, LGPL-2.1, LGPL-3.0
> HOST_GCC_LICENSE_FILES = COPYING COPYING3 COPYING.LIB COPYING3.LIB
> --
> 2.30.2
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Buildroot] [PATCH 3/6] package/gdb: remove special arc version
2023-12-31 17:25 ` [Buildroot] [PATCH 3/6] package/gdb: " Waldemar Brodkorb
@ 2023-12-31 20:24 ` Yann E. MORIN
0 siblings, 0 replies; 18+ messages in thread
From: Yann E. MORIN @ 2023-12-31 20:24 UTC (permalink / raw)
To: Waldemar Brodkorb
Cc: Romain Naour, ARC Maintainers, Giulio Benetti, Thomas Petazzoni,
buildroot
Waldemar, All,
On 2023-12-31 18:25 +0100, Waldemar Brodkorb spake thusly:
> Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
This commit really needs some more information, as to why it is correct
to drop the arch specific version.
Indeed, until now, for gcc and binutils, it was possible to select
generic version of gcc or binutils, so dropping the arc version is not
too impactoing.
However, for gdb, the situation is different: until now, it was not
possible to select a generic version for arc. So this patch is doing
more than dropping the arc version: it makes the generic version
available, and only the generic versions, while they were not available
at all until then.
I believe this is a bigger tchange than we want to do all at once, at
should at the very least be done in two different patches: first make
the generic versions available for arc, then drop the arc version.
And both commit should have a proper commit log that explains why that
is an OK change.
Plus, see below...
> ---
> package/gdb/Config.in.host | 3 -
> ...t-define-basic_string_view-to_string.patch | 114 ------------------
> package/gdb/gdb.hash | 3 -
> package/gdb/gdb.mk | 23 +---
> 4 files changed, 2 insertions(+), 141 deletions(-)
> delete mode 100644 package/gdb/arc-2020.09-release-gdb/0001-Do-not-define-basic_string_view-to_string.patch
>
> diff --git a/package/gdb/Config.in.host b/package/gdb/Config.in.host
> index da35fd94f7..69b13e9eb0 100644
> --- a/package/gdb/Config.in.host
> +++ b/package/gdb/Config.in.host
> @@ -35,14 +35,12 @@ config BR2_PACKAGE_HOST_GDB_PYTHON3
>
> config BR2_PACKAGE_HOST_GDB_SIM
> bool "Simulator support"
> - depends on !BR2_arc
So the simulator was not available on arc until now, and this chjange
also makes it available.
This should be in a separate patch, most probably after the generic
versions are made available for arc, and even after the generic version
is dropped.
And in any case, the commit log should explain why it is now possible to
enable the simulator for arc.
Regards,
Yann E. MORIN.
> help
> This option enables the simulator support in the cross gdb.
>
> choice
> prompt "GDB debugger Version"
> default BR2_GDB_VERSION_13
> - depends on !BR2_arc
> help
> Select the version of gdb you wish to use.
>
> @@ -62,7 +60,6 @@ endif
> # If cross-gdb is not enabled, the latest stable version is chosen.
> config BR2_GDB_VERSION
> string
> - default "arc-2020.09-release-gdb" if BR2_arc
> default "12.1" if BR2_GDB_VERSION_12
> default "13.2" if BR2_GDB_VERSION_13 || !BR2_PACKAGE_HOST_GDB
> # When making 14.x the default, or 14.x becomes the oldest version,
> diff --git a/package/gdb/arc-2020.09-release-gdb/0001-Do-not-define-basic_string_view-to_string.patch b/package/gdb/arc-2020.09-release-gdb/0001-Do-not-define-basic_string_view-to_string.patch
> deleted file mode 100644
> index 210ba6d609..0000000000
> --- a/package/gdb/arc-2020.09-release-gdb/0001-Do-not-define-basic_string_view-to_string.patch
> +++ /dev/null
> @@ -1,114 +0,0 @@
> -From 5ac588997c3c2d032d5d5145d9245eb37354c23b Mon Sep 17 00:00:00 2001
> -From: Tom Tromey <tromey@adacore.com>
> -Date: Tue, 30 Jun 2020 07:53:03 -0600
> -Subject: [PATCH] Do not define basic_string_view::to_string
> -
> -gdb's copy of basic_string_view includes a to_string method. However,
> -according to cppreference, this is not a method on the real
> -std::basic_string_view:
> -
> -https://en.cppreference.com/w/cpp/string/basic_string_view
> -
> -This difference matters because gdb_string_view.h will use the
> -standard implementation when built with a C++17 or later. This caused
> -PR build/26183.
> -
> -This patch fixes the problem by changing the method to be a standalone
> -helper function, and then rewriting the uses. Tested by rebuilding
> -with a version of GCC that defaults to C++17.
> -
> -(Note that the build still is not clean; and also I noticed that the
> -libstdc++ string_view forbids the use of nullptr ... I wonder if gdb
> -violates that.)
> -
> -gdb/ChangeLog
> -2020-06-30 Tom Tromey <tromey@adacore.com>
> -
> - PR build/26183:
> - * ada-lang.c (ada_lookup_name_info::ada_lookup_name_info): Use
> - gdb::to_string.
> -
> -gdbsupport/ChangeLog
> -2020-06-30 Tom Tromey <tromey@adacore.com>
> -
> - PR build/26183:
> - * gdb_string_view.h (basic_string_view::to_string): Remove.
> - (gdb::to_string): New function.
> -
> -Upstream: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=5ac588997c3c2d032d5d5145d9245eb37354c23b
> -Bug report: https://sourceware.org/bugzilla/show_bug.cgi?id=26183
> -
> -Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
> ----
> - gdb/ChangeLog | 6 ++++++
> - gdb/ada-lang.c | 8 ++++----
> - gdbsupport/ChangeLog | 6 ++++++
> - gdbsupport/gdb_string_view.h | 17 ++++++++++-------
> - 4 files changed, 26 insertions(+), 11 deletions(-)
> -
> -diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
> -index 9b0c2efbfe2..98508c168bc 100644
> ---- a/gdb/ada-lang.c
> -+++ b/gdb/ada-lang.c
> -@@ -13553,10 +13553,10 @@ ada_lookup_name_info::ada_lookup_name_info (const lookup_name_info &lookup_name)
> - {
> - if (user_name.back () == '>')
> - m_encoded_name
> -- = user_name.substr (1, user_name.size () - 2).to_string ();
> -+ = gdb::to_string (user_name.substr (1, user_name.size () - 2));
> - else
> - m_encoded_name
> -- = user_name.substr (1, user_name.size () - 1).to_string ();
> -+ = gdb::to_string (user_name.substr (1, user_name.size () - 1));
> - m_encoded_p = true;
> - m_verbatim_p = true;
> - m_wild_match_p = false;
> -@@ -13575,10 +13575,10 @@ ada_lookup_name_info::ada_lookup_name_info (const lookup_name_info &lookup_name)
> - if (encoded != NULL)
> - m_encoded_name = encoded;
> - else
> -- m_encoded_name = user_name.to_string ();
> -+ m_encoded_name = gdb::to_string (user_name);
> - }
> - else
> -- m_encoded_name = user_name.to_string ();
> -+ m_encoded_name = gdb::to_string (user_name);
> -
> - /* Handle the 'package Standard' special case. See description
> - of m_standard_p. */
> -diff --git a/gdbsupport/gdb_string_view.h b/gdbsupport/gdb_string_view.h
> -index c0ae7a8a2d9..65124e67e54 100644
> ---- a/gdbsupport/gdb_string_view.h
> -+++ b/gdbsupport/gdb_string_view.h
> -@@ -245,13 +245,6 @@ namespace gdb {
> - return { this->_M_str, this->_M_len };
> - }
> -
> -- template<typename _Allocator = std::allocator<_CharT>>
> -- std::basic_string<_CharT, _Traits, _Allocator>
> -- to_string(const _Allocator& __alloc = _Allocator()) const
> -- {
> -- return { this->_M_str, this->_M_len, __alloc };
> -- }
> --
> - size_type
> - copy(_CharT* __str, size_type __n, size_type __pos = 0) const
> - {
> -@@ -560,4 +553,14 @@ namespace gdb {
> -
> - #endif // __cplusplus < 201703L
> -
> -+namespace gdb {
> -+
> -+static inline std::string
> -+to_string(const gdb::string_view &view)
> -+{
> -+ return { view.data (), view.size () };
> -+}
> -+
> -+}
> -+
> - #endif /* COMMON_GDB_STRING_VIEW_H */
> ---
> -2.39.3
> -
> diff --git a/package/gdb/gdb.hash b/package/gdb/gdb.hash
> index ba90bff5d6..bdc236daf3 100644
> --- a/package/gdb/gdb.hash
> +++ b/package/gdb/gdb.hash
> @@ -4,6 +4,3 @@ sha512 07e9026423438049b11f4f784d57401ece4e940570f613bd6958b3714fe7fbc2c048470b
> sha512 425568d2e84672177d0fb87b1ad7daafdde097648d605e30cf0656970f66adc6a82ca2d83375ea4be583e9683a340e5bfdf5819668ddf66728200141ae50ff2d gdb-12.1.tar.xz
> sha512 8185d3e11ab60dafff5860a5016577bfe7dd7547ef01ebc867bc247603d82b74ff74c4f29492c7d2aee57076f52be33e289f4c6b414a4b870d4b3004909f4c34 gdb-13.2.tar.xz
> sha512 575e198105076fc4a88f68591aa114ab9c1196e84386a3f7b9b58fe5f30cdeed33f6a5f957b68f08c47284ec922bb60c964627e238471419673fd913575ce427 gdb-14.1.tar.xz
> -
> -# Locally calculated (fetched from Github)
> -sha512 5a2acf2fd33ab2ff589e1037ca40abda54328997dcff26b2b49b874bd3be980be5a63342962254f3c3bda98e32ce7a33af704d37353352833dee193135600458 gdb-arc-2020.09-release-gdb.tar.gz
> diff --git a/package/gdb/gdb.mk b/package/gdb/gdb.mk
> index af40f7f986..26695b2cd4 100644
> --- a/package/gdb/gdb.mk
> +++ b/package/gdb/gdb.mk
> @@ -8,12 +8,6 @@ GDB_VERSION = $(call qstrip,$(BR2_GDB_VERSION))
> GDB_SITE = $(BR2_GNU_MIRROR)/gdb
> GDB_SOURCE = gdb-$(GDB_VERSION).tar.xz
>
> -ifeq ($(BR2_arc),y)
> -GDB_SITE = $(call github,foss-for-synopsys-dwc-arc-processors,binutils-gdb,$(GDB_VERSION))
> -GDB_SOURCE = gdb-$(GDB_VERSION).tar.gz
> -GDB_FROM_GIT = y
> -endif
> -
> GDB_LICENSE = GPL-2.0+, LGPL-2.0+, GPL-3.0+, LGPL-3.0+
> GDB_LICENSE_FILES = COPYING COPYING.LIB COPYING3 COPYING3.LIB
> GDB_CPE_ID_VENDOR = gnu
> @@ -56,11 +50,8 @@ GDB_DEPENDENCIES += host-flex host-bison
> HOST_GDB_DEPENDENCIES += host-flex host-bison
> endif
>
> -# All newer versions of GDB need host-gmp, so it's only for older
> -# versions that the dependency can be avoided.
> -ifeq ($(BR2_arc),)
> +# All newer versions of GDB need host-gmp
> HOST_GDB_DEPENDENCIES += host-gmp
> -endif
>
> # When gdb sources are fetched from the binutils-gdb repository, they
> # also contain the binutils sources, but binutils shouldn't be built,
> @@ -158,13 +149,10 @@ GDB_CONF_OPTS += \
> endif
>
> # Starting from GDB 11.x, gmp is needed as a dependency to build full
> -# gdb. So we avoid the dependency only for the special version used on
> -# ARC.
> -ifeq ($(BR2_arc):$(BR2_PACKAGE_GDB_DEBUGGER),:y)
> +# gdb.
> GDB_CONF_OPTS += \
> --with-libgmp-prefix=$(STAGING_DIR)/usr
> GDB_DEPENDENCIES += gmp
> -endif
>
> # Starting from GDB 14.x, mpfr is needed as a dependency to build full
> # gdb.
> @@ -182,13 +170,6 @@ else
> GDB_CONF_OPTS += --disable-gdbserver
> endif
>
> -# When gdb is built as C++ application for ARC it segfaults at runtime
> -# So we pass --disable-build-with-cxx config option to force gdb not to
> -# be built as C++ app.
> -ifeq ($(BR2_arc),y)
> -GDB_CONF_OPTS += --disable-build-with-cxx
> -endif
> -
> # gdb 7.12+ by default builds with a C++ compiler, which doesn't work
> # when we don't have C++ support in the toolchain
> ifneq ($(BR2_INSTALL_LIBSTDCPP),y)
> --
> 2.30.2
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Buildroot] [PATCH 4/6] configs/qemu: add qemu_arc_defconfig
2023-12-31 17:25 ` [Buildroot] [PATCH 4/6] configs/qemu: add qemu_arc_defconfig Waldemar Brodkorb
@ 2023-12-31 20:27 ` Yann E. MORIN
2023-12-31 21:55 ` Waldemar Brodkorb
2024-01-06 22:22 ` [Buildroot] [arc-buildroot] " Alexey Brodkin via buildroot
1 sibling, 1 reply; 18+ messages in thread
From: Yann E. MORIN @ 2023-12-31 20:27 UTC (permalink / raw)
To: Waldemar Brodkorb
Cc: Romain Naour, ARC Maintainers, Giulio Benetti, Thomas Petazzoni,
buildroot
Waldemar, All,
On 2023-12-31 18:25 +0100, Waldemar Brodkorb spake thusly:
> Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Add a bit of explanations in the commit log, especially given the
following...
> ---
[--SNIP--]
> diff --git a/board/qemu/arc/readme.txt b/board/qemu/arc/readme.txt
> new file mode 100644
> index 0000000000..93bb9c2152
> --- /dev/null
> +++ b/board/qemu/arc/readme.txt
> @@ -0,0 +1,8 @@
> +You need Qemu fork from here:
> +https://github.com/foss-for-synopsys-dwc-arc-processors/qemu
So, we are dropping all the arc specific versions for the toolchain
components, but we eventually introduce a defconfig that relies on an
arc specific version of qemu, that we do not even package in Buildroot,
so that users can't even enable host-qemu in Buildroot.
That is a bit sad...
What is the rationale for introducing this defconfig, then?
Regards,
Yann E. MORIN.
> +Run the emulation with:
> +
> + qemu-system-arc -monitor none -serial stdio -netdev user,id=eth0 -device virtio-net-device,netdev=eth0 -cpu archs -kernel output/images/vmlinux -nographic # qemu_arc_defconfig
> +
> +The login prompt will appear in the terminal that started Qemu.
> diff --git a/configs/qemu_arc_defconfig b/configs/qemu_arc_defconfig
> new file mode 100644
> index 0000000000..d65e28a3d0
> --- /dev/null
> +++ b/configs/qemu_arc_defconfig
> @@ -0,0 +1,30 @@
> +# Architecture
> +BR2_arc=y
> +BR2_arcle=y
> +BR2_archs38=y
> +
> +# System
> +BR2_SYSTEM_DHCP="eth0"
> +
> +# Filesystem
> +# BR2_TARGET_ROOTFS_TAR is not set
> +BR2_TARGET_ROOTFS_INITRAMFS=y
> +
> +# Image
> +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
> +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
> +
> +# Linux headers same as kernel
> +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_1=y
> +
> +# Kernel
> +BR2_LINUX_KERNEL=y
> +BR2_LINUX_KERNEL_CUSTOM_VERSION=y
> +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.44"
> +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
> +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/arc/linux.config"
> +BR2_LINUX_KERNEL_VMLINUX=y
> +
> +# host-qemu for gitlab testing
> +BR2_PACKAGE_HOST_QEMU=y
> +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y
> --
> 2.30.2
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Buildroot] [PATCH 4/6] configs/qemu: add qemu_arc_defconfig
2023-12-31 20:27 ` Yann E. MORIN
@ 2023-12-31 21:55 ` Waldemar Brodkorb
2024-01-01 14:47 ` [Buildroot] [arc-buildroot] " Alexey Brodkin via buildroot
2024-01-01 20:18 ` [Buildroot] " Yann E. MORIN
0 siblings, 2 replies; 18+ messages in thread
From: Waldemar Brodkorb @ 2023-12-31 21:55 UTC (permalink / raw)
To: Yann E. MORIN
Cc: ARC Maintainers, Thomas Petazzoni, buildroot, Romain Naour,
Giulio Benetti
Hi Yann, All,
Yann E. MORIN wrote,
> Waldemar, All,
>
> On 2023-12-31 18:25 +0100, Waldemar Brodkorb spake thusly:
> > Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
>
> Add a bit of explanations in the commit log, especially given the
> following...
>
> > ---
> [--SNIP--]
> > diff --git a/board/qemu/arc/readme.txt b/board/qemu/arc/readme.txt
> > new file mode 100644
> > index 0000000000..93bb9c2152
> > --- /dev/null
> > +++ b/board/qemu/arc/readme.txt
> > @@ -0,0 +1,8 @@
> > +You need Qemu fork from here:
> > +https://github.com/foss-for-synopsys-dwc-arc-processors/qemu
>
> So, we are dropping all the arc specific versions for the toolchain
> components, but we eventually introduce a defconfig that relies on an
> arc specific version of qemu, that we do not even package in Buildroot,
> so that users can't even enable host-qemu in Buildroot.
>
> That is a bit sad...
>
> What is the rationale for introducing this defconfig, then?
Qemu is more widely known then the nsimdrv. And I think when ARCv3
support is added to Buildroot it can be used to test it, too.
I thought it would be nice to have instead of only rely on the nsim
defconfig we have now.
Can we keep it? What others say?
best regards
Waldemar
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Buildroot] [arc-buildroot] [PATCH 1/6] package/gcc: remove special arc version
2023-12-31 20:02 ` Yann E. MORIN
@ 2024-01-01 14:43 ` Alexey Brodkin via buildroot
2024-01-01 20:05 ` Yann E. MORIN
0 siblings, 1 reply; 18+ messages in thread
From: Alexey Brodkin via buildroot @ 2024-01-01 14:43 UTC (permalink / raw)
To: Waldemar Brodkorb, Yann E. MORIN
Cc: Romain Naour, ARC Maintainers, Giulio Benetti, Thomas Petazzoni,
buildroot@buildroot.org
Dear Waldemar, Yann, all,
Sorry for a bit late reply.
> On 2023-12-31 18:25 +0100, Waldemar Brodkorb spake thusly:
> > Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
>
> Thanks for working on this; we discussed that with Thomas the other day,
> and we concluded that indeed that would be a good idea to get rid of
> that special version now.
>
> However, your commit log is empty. It should instead explain the reasons
> why dropping that special version is now a good thing.
>
> It is very importaant that this information be recorded in the commit
> log, because we may (will!) need to refer to it in the future, when we
> then wonder why that was good idea.
Thanks for that clean-up series and indeed it makes a lot of sense for
ARCompact (AKA ARCv2) & ARCv2 processors - which are perfectly supported in
all the upstream projects.
Especially it's nice that you went that far and added confing and instuctions
on how to run the Linux kernel for ARC on QEMU - that's much appeciated.
But as we discussed some time age there's ARCv3 ISA which support is being
added in upsream components still and as of now not all the bits and pieces
got merged upstream, thus we and our user have to rely [sadly again] on our
GitHub forks, see [1], [2] and [3]
Funny enough uClibc as you know already has full support of ARCv3 starting from
v1.0.43, see [4].
What's also nice, both 32-bit and 64-bit versions of ARCv3 are well supported in our QEMU
fork [5], so relevant configutations will be included as well.
So given that's a short new year break between work fires I may quickly send-out
patches which will either:
1. Bump ARC tools to the latest version 2023.09 (see [6]) which will also
add support for ARCv3 (in fact we already have it in our fork, see [7])
2. Update ARC tools (GCC, Binutils/GDB & glibc) for ARCv3 only, while switching
ARCompact & ARCv2 to upstream components.
3. Given ARC seems to be the only use of non-upstream components, remove
ARC-specific tools/forks from buildroot and only enable ARCv3 use via
external toolchains.
And while (3) is the slimmest option (no need to add or rather maintain ARC-specific)
code in package/xxx Config.in.host, xxx.mk especially with uClibc it's a bit too
restrictive as users may want more flexibility of configuring uClibc to their needs.
-Alexey
[1] https://github.com/foss-for-synopsys-dwc-arc-processors/gcc/tree/arc-2023.09
[2] https://github.com/foss-for-synopsys-dwc-arc-processors/binutils-gdb/tree/arc-2023.09
[3] https://github.com/foss-for-synopsys-dwc-arc-processors/glibc/tree/arc-2023.09
[4] https://cgit.uclibc-ng.org/cgi/cgit/uclibc-ng.git/commit/?id=de6be7bc60f190a0d746945a3a5a143bc93a1a65
[5] https://github.com/foss-for-synopsys-dwc-arc-processors/qemu
[6] https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/tag/arc-2023.09-release
[7] https://github.com/foss-for-synopsys-dwc-arc-processors/buildroot/tree/arc-2023.09
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Buildroot] [arc-buildroot] [PATCH 4/6] configs/qemu: add qemu_arc_defconfig
2023-12-31 21:55 ` Waldemar Brodkorb
@ 2024-01-01 14:47 ` Alexey Brodkin via buildroot
2024-01-01 20:18 ` [Buildroot] " Yann E. MORIN
1 sibling, 0 replies; 18+ messages in thread
From: Alexey Brodkin via buildroot @ 2024-01-01 14:47 UTC (permalink / raw)
To: Yann E. MORIN, Waldemar Brodkorb
Cc: ARC Maintainers, Thomas Petazzoni, buildroot@buildroot.org,
Romain Naour, Giulio Benetti
Hi Waldemar, Yann, all,
> Yann E. MORIN wrote,
>
> > Waldemar, All,
> >
> > On 2023-12-31 18:25 +0100, Waldemar Brodkorb spake thusly:
> > > Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
> >
> > Add a bit of explanations in the commit log, especially given the
> > following...
> >
> > > ---
> > [--SNIP--]
> > > diff --git a/board/qemu/arc/readme.txt b/board/qemu/arc/readme.txt
> > > new file mode 100644
> > > index 0000000000..93bb9c2152
> > > --- /dev/null
> > > +++ b/board/qemu/arc/readme.txt
> > > @@ -0,0 +1,8 @@
> > > +You need Qemu fork from here:
> > > +https://urldefense.com/v3/__https://github.com/foss-for-synopsys-dwc-arc-processors/qemu__;!!A4F2R9G_pg!fgGSAQfVckRuijplS-p83y-PGaKlg6lK_iA1kW3cneXd4lEGQc_FCtOb5-gwAhS2NWDw2jkfqPDZYkeaBQ$
> >
> > So, we are dropping all the arc specific versions for the toolchain
> > components, but we eventually introduce a defconfig that relies on an
> > arc specific version of qemu, that we do not even package in Buildroot,
> > so that users can't even enable host-qemu in Buildroot.
> >
> > That is a bit sad...
> >
> > What is the rationale for introducing this defconfig, then?
If there's a pre-built binary of QEMU for ARC, can we use it instead of packaging
it via Buildroot? I.e. what if in Buildroot's Dockerfile we will just pull-in
a binary instead of installing it via "apt get"?
> Qemu is more widely known then the nsimdrv. And I think when ARCv3
> support is added to Buildroot it can be used to test it, too.
Indeed, with QEMU we'll be able to finally enable runtime testing for ARC as there're
no license-related limitaiton in case of QEMU such that we have with Free nSIM.
-Alexey
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Buildroot] [arc-buildroot] [PATCH 1/6] package/gcc: remove special arc version
2024-01-01 14:43 ` [Buildroot] [arc-buildroot] " Alexey Brodkin via buildroot
@ 2024-01-01 20:05 ` Yann E. MORIN
0 siblings, 0 replies; 18+ messages in thread
From: Yann E. MORIN @ 2024-01-01 20:05 UTC (permalink / raw)
To: Alexey Brodkin
Cc: ARC Maintainers, Thomas Petazzoni, buildroot@buildroot.org,
Romain Naour, Giulio Benetti
Alexey, All,
Thank you for quickly jumping ship in the discussion, Alexey!
On 2024-01-01 14:43 +0000, Alexey Brodkin via buildroot spake thusly:
> > On 2023-12-31 18:25 +0100, Waldemar Brodkorb spake thusly:
> > > Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
> > Thanks for working on this; we discussed that with Thomas the other day,
> > and we concluded that indeed that would be a good idea to get rid of
> > that special version now.
[--SNIP--]
> So given that's a short new year break between work fires I may quickly send-out
> patches which will either:
> 1. Bump ARC tools to the latest version 2023.09 (see [6]) which will also
> add support for ARCv3 (in fact we already have it in our fork, see [7])
> 2. Update ARC tools (GCC, Binutils/GDB & glibc) for ARCv3 only, while switching
> ARCompact & ARCv2 to upstream components.
> 3. Given ARC seems to be the only use of non-upstream components, remove
> ARC-specific tools/forks from buildroot and only enable ARCv3 use via
> external toolchains.
As you said, the ARCv2 is perfectly supported in the upstream
components. Then it makes sense to no longer have the ARC specific
versions for the ARCv2 CPUs, especially since that version (10.x) is
older than the oldest generic version we have (11.x).
Furthermore, we currently have no ARCv3 CPU support in Buildroot.
So, I think that, looking at the situation *as it is today*, Waldemar's
series (improved with the various comments I made earlier) is the best
course of action for Buildroot.
Then, when we get support for ARCv3 CPUs, we can either:
- use your option 2 above if that comes before we remove the current
ARC-specific version, or
- reintroduce an ARC-specific version otherwise.
> And while (3) is the slimmest option (no need to add or rather maintain ARC-specific)
> code in package/xxx Config.in.host, xxx.mk especially with uClibc it's a bit too
> restrictive as users may want more flexibility of configuring uClibc to their needs.
I agree that option 3 is not very interesting.
Regards,
Yann E. MORIN.
> -Alexey
>
> [1] https://github.com/foss-for-synopsys-dwc-arc-processors/gcc/tree/arc-2023.09
> [2] https://github.com/foss-for-synopsys-dwc-arc-processors/binutils-gdb/tree/arc-2023.09
> [3] https://github.com/foss-for-synopsys-dwc-arc-processors/glibc/tree/arc-2023.09
> [4] https://cgit.uclibc-ng.org/cgi/cgit/uclibc-ng.git/commit/?id=de6be7bc60f190a0d746945a3a5a143bc93a1a65
> [5] https://github.com/foss-for-synopsys-dwc-arc-processors/qemu
> [6] https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/tag/arc-2023.09-release
> [7] https://github.com/foss-for-synopsys-dwc-arc-processors/buildroot/tree/arc-2023.09
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Buildroot] [PATCH 4/6] configs/qemu: add qemu_arc_defconfig
2023-12-31 21:55 ` Waldemar Brodkorb
2024-01-01 14:47 ` [Buildroot] [arc-buildroot] " Alexey Brodkin via buildroot
@ 2024-01-01 20:18 ` Yann E. MORIN
1 sibling, 0 replies; 18+ messages in thread
From: Yann E. MORIN @ 2024-01-01 20:18 UTC (permalink / raw)
To: Waldemar Brodkorb
Cc: Romain Naour, ARC Maintainers, Giulio Benetti, Thomas Petazzoni,
buildroot
Waldemar, All,
On 2023-12-31 22:55 +0100, Waldemar Brodkorb spake thusly:
> Yann E. MORIN wrote,
> > On 2023-12-31 18:25 +0100, Waldemar Brodkorb spake thusly:
> > > Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
[--SNIP--]
> > > +You need Qemu fork from here:
> > > +https://github.com/foss-for-synopsys-dwc-arc-processors/qemu
> > So, we are dropping all the arc specific versions for the toolchain
> > components, but we eventually introduce a defconfig that relies on an
> > arc specific version of qemu, that we do not even package in Buildroot,
> > so that users can't even enable host-qemu in Buildroot.
> > That is a bit sad...
> > What is the rationale for introducing this defconfig, then?
> Qemu is more widely known then the nsimdrv.
OK, fair enough.
Still, Qemu with ARC support is not sidely available (e.h .it's not ins
distros), and we do not have a way to easily build it from source,
leaving to the user the duty to find how to do get such a Qemu.
And since you point to the source tree (which is nice), it implies one
has to build from source on their own, which we know is a bit tedious...
> And I think when ARCv3
> support is added to Buildroot
*When* is the key word here. I know Alexey has said he was looking into
it, but IIRC the topic has been pending since last August, so I would
like to decorelate the two topics.
> it can be used to test it, too.
That does not change the fact that it is a forked version, not readily
available, that we do not build in Buildroot, and that the user has to
manually build from source on their own, which is still problematic.
> I thought it would be nice to have instead of only rely on the nsim
> defconfig we have now.
That I agree on, but I don;t think it is a good-enough reason to be
using a non-upstream Qemu.
> Can we keep it? What others say?
"Mom, dad, it's a cute doggy/kitten/duck/poney/hedghog! Can we keep it?"
Let's see what other maintainers think, of course.
And in any case, that does not diminish the fact that the commit log
should contain a proper rationale.
Regards,
Yann E. MORIN.
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Buildroot] [arc-buildroot] [PATCH 4/6] configs/qemu: add qemu_arc_defconfig
2023-12-31 17:25 ` [Buildroot] [PATCH 4/6] configs/qemu: add qemu_arc_defconfig Waldemar Brodkorb
2023-12-31 20:27 ` Yann E. MORIN
@ 2024-01-06 22:22 ` Alexey Brodkin via buildroot
1 sibling, 0 replies; 18+ messages in thread
From: Alexey Brodkin via buildroot @ 2024-01-06 22:22 UTC (permalink / raw)
To: Waldemar Brodkorb
Cc: Romain Naour, ARC Maintainers, Giulio Benetti, Thomas Petazzoni,
buildroot@buildroot.org
Hi Waldemar,
> Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
So that's another good trigger from your side ;)
> board/qemu/arc/linux.config | 32 ++++++++++++++++++++++++++++++++
> board/qemu/arc/readme.txt | 8 ++++++++
> configs/qemu_arc_defconfig | 30 ++++++++++++++++++++++++++++++
> 3 files changed, 70 insertions(+)
> create mode 100644 board/qemu/arc/linux.config
> create mode 100644 board/qemu/arc/readme.txt
> create mode 100644 configs/qemu_arc_defconfig
As a matter of fact, we may do it much simpler as most of the things are
already in place. We just need to switch HAPS defconfig to a UP kernel,
enable DHCP on eth0:
----------------->8--------------
diff --git a/configs/snps_archs38_haps_defconfig b/configs/snps_archs38_haps_defconfig
index 02e020bb47..c2ec480806 100644
--- a/configs/snps_archs38_haps_defconfig
+++ b/configs/snps_archs38_haps_defconfig
@@ -6,6 +6,7 @@ BR2_archs38=y
BR2_TARGET_GENERIC_HOSTNAME="zebu_hs"
BR2_TARGET_GENERIC_ISSUE="Welcome to the HAPS Development Platform"
BR2_TARGET_ROOTFS_INITRAMFS=y
+BR2_SYSTEM_DHCP="eth0"
# Linux headers same as kernel, a 5.16 series
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_16=y
@@ -14,5 +15,5 @@ BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_16=y
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.16"
-BR2_LINUX_KERNEL_DEFCONFIG="haps_hs_smp"
+BR2_LINUX_KERNEL_DEFCONFIG="haps_hs"
BR2_LINUX_KERNEL_VMLINUX=y
----------------->8--------------
and voila!
----------------->8--------------
qemu-system-arc -M virt,ram_start=0x80000000 -cpu archs -m 2G -display none -nographic -monitor none -kernel output/images/vmlinux -netdev user,id=net0 -device virtio-net-device,netdev=net0 -device virtio-rng-pci
Linux version 5.16.0 (abrodkin@us01arcgnu3) (arc-buildroot-linux-gnu-gcc.br_real (Buildroot 2023.11-520-g38ba3bd175-dirty) 13.1.1 20230516, GNU ld (GNU Binutils) 2.40.90.20230703) #2 PREEMPT Sat Jan 6 14:15:43 PST 2024
Memory @ 80000000 [1024M]
Memory @ 100000000 [1024M] Not used
OF: fdt: Machine model: snps,zebu_hs
earlycon: uart8250 at MMIO32 0xf0000000 (options '115200n8')
printk: bootconsole [uart8250] enabled
archs-intc : 16 priority levels (default 1) FIRQ (not used)
IDENTITY : ARCVER [0x54] ARCNUM [0x0] CHIPID [0xffff]
processor [0] : HS38 R3.10a (ARCv2 ISA)
Timers : Timer0 Timer1
ISA Extn : atomic ll64 unalign mpy[opt 9] div_rem
MMU [v4] : 8k PAGE, 2M Super Page (not used) , swalk 2 lvl, JTLB 1024 (256x4), uDTLB 8, uITLB 4, PAE40 (not used)
I-Cache : 64K, 4way/set, 64B Line, VIPT aliasing
D-Cache : 64K, 2way/set, 64B Line, PIPT
Peripherals : 0xc0000000
Vector Table : 0x80000000
FPU : SP DP
...
Freeing unused kernel image (initmem) memory: 1296K
This architecture does not have kernel memory protection.
Run /init as init process
with arguments:
/init
with environment:
HOME=/
TERM=linux
Saving 2048 bits of non-creditable seed for next boot
Starting syslogd: OK
Starting klogd: OK
Running sysctl: OK
Starting network: udhcpc: started, v1.36.1
udhcpc: broadcasting discover
udhcpc: broadcasting select for 10.0.2.15, server 10.0.2.2
udhcpc: lease of 10.0.2.15 obtained from 10.0.2.2, lease time 86400
deleting routers
adding dns 10.0.2.3
OK
Welcome to the HAPS Development Platform
zebu_hs login: root
# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
valid_lft forever preferred_lft forever
# ping 10.0.2.2
PING 10.0.2.2 (10.0.2.2): 56 data bytes
64 bytes from 10.0.2.2: seq=0 ttl=255 time=1.046 ms
64 bytes from 10.0.2.2: seq=1 ttl=255 time=0.068 ms
64 bytes from 10.0.2.2: seq=2 ttl=255 time=0.040 ms
----------------->8--------------
Let me send yet another substitution for another patch of yours, sorry ;)
-Alexey
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 18+ messages in thread
end of thread, other threads:[~2024-01-06 22:22 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-31 17:25 [Buildroot] [PATCH 0/6] rework arc architecture support Waldemar Brodkorb
2023-12-31 17:25 ` [Buildroot] [PATCH 1/6] package/gcc: remove special arc version Waldemar Brodkorb
2023-12-31 20:02 ` Yann E. MORIN
2024-01-01 14:43 ` [Buildroot] [arc-buildroot] " Alexey Brodkin via buildroot
2024-01-01 20:05 ` Yann E. MORIN
2023-12-31 20:13 ` [Buildroot] " Yann E. MORIN
2023-12-31 17:25 ` [Buildroot] [PATCH 2/6] package/binutils: " Waldemar Brodkorb
2023-12-31 20:10 ` Yann E. MORIN
2023-12-31 17:25 ` [Buildroot] [PATCH 3/6] package/gdb: " Waldemar Brodkorb
2023-12-31 20:24 ` Yann E. MORIN
2023-12-31 17:25 ` [Buildroot] [PATCH 4/6] configs/qemu: add qemu_arc_defconfig Waldemar Brodkorb
2023-12-31 20:27 ` Yann E. MORIN
2023-12-31 21:55 ` Waldemar Brodkorb
2024-01-01 14:47 ` [Buildroot] [arc-buildroot] " Alexey Brodkin via buildroot
2024-01-01 20:18 ` [Buildroot] " Yann E. MORIN
2024-01-06 22:22 ` [Buildroot] [arc-buildroot] " Alexey Brodkin via buildroot
2023-12-31 17:25 ` [Buildroot] [PATCH 5/6] configs/snps_arc700_nsim_defconfig: update kernel Waldemar Brodkorb
2023-12-31 17:25 ` [Buildroot] [PATCH 6/6] configs/snps_archs38_hsdk_defconfig: " Waldemar Brodkorb
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox