Skip to content

Commit 42f0842

Browse files
Merge branch 'arc-dev' into arc-staging
2 parents e0e752e + 35aa727 commit 42f0842

File tree

8 files changed

+116
-46
lines changed

8 files changed

+116
-46
lines changed

NEWS

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,77 @@
1+
Major Changes in 2016.03 Release
2+
================================
3+
4+
Toolchain and IDE Components Versions
5+
-------------------------------------
6+
7+
* Binutils v2.26+ (upstream commit id 202ac19 with additional ARC patches)
8+
* GCC v4.8.5
9+
* GDB 7.10
10+
* newlib v2.3
11+
* uclibc (upstream commit 94340ce with backported patches from uClibc-ng)
12+
* Eclipse Mars (4.5.1) with CDT 8.8.0
13+
* OpenOCD 0.9+ upstream commit 30203b3d8b, with ARC support.
14+
15+
This release of GNU toolchain and IDE is supported by CGEN IPlib (TCF
16+
generator) version 1.0.53.
17+
18+
19+
New Features and Enhancements
20+
-----------------------------
21+
22+
* Binutils
23+
* Binutils for ARC has been rewritten from the scratch, based on upstream
24+
release 2.26.
25+
* GCC
26+
* New values for `-mcpu` option and new set of multilib libraries built for
27+
those processor configurations.
28+
* Support for text values of `-mmpy-option`, same as in hardware IP
29+
libraries.
30+
* Fixed runtime issues on 32-bit hosts.
31+
* Eclipse IDE
32+
* Support for new GCC `-mcpu` option values.
33+
* If TCF is used, then options in GUI are now synchronized with it.
34+
* Now it is possible to select current working directory when using nSIM.
35+
* OpenOCD
36+
* Added a separate configuration file for ARC EM Starter Kit v2.2, which
37+
requries reduced JTAG Frequency of 5 MHz, compared to 7.5 MHz that has
38+
been used for versions 2.0 and 2.1.
39+
* Toolchain build scripts
40+
* Option `--cpu` now accepts different values that are supported by GCC as
41+
values for `-mcpu` option. List of supported values is dynamic and
42+
evaluated based on GCC configuration.
43+
* Support for building of native (self-hosting) Linux/uClibc toolchain.
44+
* New option of build-all.sh script:
45+
* `--native` - specifies whether script is building native
46+
(self-hosting) toolchain. That affects location of header files and
47+
standard library archvies. It is still required to pass `--host`
48+
option to specify cross-toolchain to build native toolchain.
49+
50+
51+
Bugs Fixed in This Release (Summary)
52+
------------------------------------
53+
54+
* GCC
55+
* There was no multilib configuration without multiplier for ARC 700, EM
56+
and HS processors.
57+
* Newlib
58+
* Fixed a bug in crt0.S file that was using optional ASR a,b,u6 instruction
59+
without checking if barrel shifter is enabled.
60+
* Eclipse IDE
61+
* Path to standard headers was calculated improperly for big-endian
62+
projects.
63+
* Fixed an inconsistency where if toolchain is present both in the PATH and
64+
relatively to eclipse installation, compiler plugin would use one
65+
toolchain from ../bin to build project, but would use toolchain from the
66+
PATH to get information about standard headers.
67+
* OpenOCD
68+
* OpenOCD didn't worked with HS36 in AXS103.
69+
* Toolchain build scripts
70+
* XML files for Ashling Opella-XD GDBserver were broken for Windows systems.
71+
* Memory maps for AXS10x boards were broken - there was a link error when
72+
using them.
73+
74+
175
Major changes in 2015.12 release
276
================================
377

README.md

Lines changed: 22 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -125,10 +125,10 @@ If current working directory is not a "toolchain" directory, then change to it:
125125
$ cd toolchain
126126

127127
This repository can be checked out to a specific GNU Toolchain for ARC release
128-
by specifying a particular release tag, for example for 2015.12 release that
128+
by specifying a particular release tag, for example for 2016.03 release that
129129
would be:
130130

131-
$ git checkout arc-2015.12
131+
$ git checkout arc-2016.03
132132

133133

134134
Building the Toolchain
@@ -203,57 +203,50 @@ will not be overridden.
203203

204204
### Build options examples
205205

206-
Build default toolchain, bare metal toolchain will support all ARC cores,
207-
while Linux toolchain will support ARC 700:
206+
This command will build default toolchain - bare metal toolchain will support
207+
all ARC cores, while Linux toolchain will support ARC 700:
208208

209209
$ ./build-all.sh --install-dir $INSTALL_ROOT
210210

211-
Build toolchain for ARC 700 Linux development:
211+
This command will build bare metal toolchain for ARC 700 Linux development:
212212

213213
$ ./build-all.sh --no-elf32 --install-dir $INSTALL_ROOT
214214

215-
Build toolchain for ARC HS Linux development:
215+
This command will build bare metal toolchain for ARC HS Linux development:
216216

217-
$ ./build-all.sh --no-elf32 --cpu hs38 --install-dir $INSTALL_ROOT
218217

219-
Build bare metal toolchain for ARC EM cores:
218+
$ ./build-all.sh --no-elf32 --cpu hs38_linux --install-dir $INSTALL_ROOT
220219

221-
$ ./build-all.sh --no-uclibc --install-dir $INSTALL_ROOT --cpu em4_dmips --no-multilib
222-
223-
Build bare metal toolchain for ARC EM5D in the ARC EM Starter Kit 2.0:
220+
This command will build bare metal toolchain for ARC EM7D in the ARC EM Starter
221+
Kit 2.2:
224222

225223
$ ./build-all.sh --no-uclibc --install-dir $INSTALL_ROOT --no-multilib \
226-
--cpu em4_dmips --target-cflags "-O2 -g -mcode-density -mno-div-rem -mswap -mnorm \
227-
-mmpy-option=6 -mbarrel-shifter"
224+
--cpu em4_dmips
228225

229-
Build bare metal toolchain for ARC EM7D in the ARC EM Starter Kit 2.0
230-
(EM7D_FPU is similiar, but with -mfpu=fpuda):
226+
This command will build bare metal toolchain for ARC EM9D in the ARC EM Starter
227+
Kit 2.2:
231228

232229
$ ./build-all.sh --no-uclibc --install-dir $INSTALL_ROOT --no-multilib \
233-
--cpu em4_dmips --target-cflags "-O2 -g -mcode-density -mno-div-rem -mswap \
234-
-mnorm -mmpy-option=6 -mbarrel-shifter \
235-
--param l1-cache-size=16384 --param l1-cache-line-size=32"
230+
--cpu em4_fpus --target-cflags "-O2 -g -mfpu=fpus_all"
236231

237-
Build bare metal toolchain for ARC EM4 in the ARC EM Starter Kit 1.1:
232+
This command will build bare metal toolchain for ARC EM11D in the ARC EM Starter
233+
Kit 2.2:
238234

239235
$ ./build-all.sh --no-uclibc --install-dir $INSTALL_ROOT --no-multilib \
240-
--cpu em4_dmips --target-cflags "-O2 -g -mcode-density -mdiv-rem -mswap \
241-
-mnorm -mmpy-option=6 -mbarrel-shifter"
236+
--cpu em4_fpuda --target-cflags "-O2 -g -mfpu=fpuda_all"
242237

243-
Build bare metal toolchain for ARC EM6 in the ARC EM Starter Kit 1.1:
238+
Build bare metal toolchain for ARC EM4 and EM6 in the ARC EM Starter Kit 1.1:
244239

245240
$ ./build-all.sh --no-uclibc --install-dir $INSTALL_ROOT --no-multilib \
246-
--cpu em4_dmips --target-cflags "-O2 -g -mcode-density -mdiv-rem -mswap \
247-
-mnorm -mmpy-option=6 -mbarrel-shifter \
248-
--param l1-cache-size=32768 --param l1-cache-line-size=128"
241+
--cpu em4_dmips
249242

250243
To build native ARC Linux toolchain (toolchain that runs on same system as for
251244
which it compiles, so host == target) it is required first to build a normal
252245
cross toolchain for this system. Then it should be added it to the PATH, after
253246
that `build-all.sh` can be run:
254247

255248
$ ./build-all.sh --no-elf32 --install-dir $INSTALL_ROOT_NATIVE \
256-
--cpu hs38 --native --host arc-snps-linux-uclibc
249+
--cpu hs38_linux --native --host arc-snps-linux-uclibc
257250

258251
In this command line, argument to `--cpu` option must correspond to the target
259252
CPU and argument to `--host` options depends on whether this is a big or little
@@ -483,12 +476,14 @@ follows:
483476
$ arc-elf32-gcc -mcpu=arcem -g --specs=nsim.specs simple.c
484477
$ arc-elf32-gdb --quiet a.out
485478
(gdb) set tdesc filename toolchain/extras/opella-xd/opella-arcem-tdesc.xml
486-
(gdb) set target remote :2331
479+
(gdb) target remote :2331
487480
(gdb) load
488481
(gdb) break main
489482
(gdb) continue
490483
(gdb) break exit
491484
(gdb) continue
485+
# Register R0 contains exit code of function main()
486+
(gtb) info reg r0
492487
(gdb) quit
493488

494489
Similar to OpenOCD hostlink is not available in GDB with Ashling Opella-XD.

build-all.sh

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -187,9 +187,11 @@
187187

188188
# --uclibc-defconfig <defconfig>
189189

190-
# If specified, the defconfig used to build uClibc will be
191-
# <defconfig>. The default is defconfig for v1 ISA and arcv2_defconfig for
192-
# v2 ISA.
190+
# If specified, the defconfig used to build uClibc will be <defconfig>. The
191+
# default is defconfig for ARC 700 and arcv2_defconfig for ARC HS - this is
192+
# decided based on value of --cpu option. If CPU is "arc700", then
193+
# defconfig for ARC 700 will be used. In all other cases defconfig for ARC
194+
# HS will be used.
193195

194196
# --sim | --no-sim
195197

@@ -825,11 +827,10 @@ fi
825827
# Default defconfig for uClibc, only if it has not already been set
826828
if [ "x${UCLIBC_DEFCFG}" = "x" ]
827829
then
828-
if [ "xarchs" = "x${ISA_CPU}" ]
829-
then
830-
UCLIBC_DEFCFG=arcv2_defconfig
831-
else
830+
if [ "$ISA_CPU" = arc700 ]; then
832831
UCLIBC_DEFCFG=defconfig
832+
else
833+
UCLIBC_DEFCFG=arcv2_defconfig
833834
fi
834835
fi
835836

config/arc-dev.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ gcc=gcc:arc-4.8-dev
44
gdb=gdb:arc-7.10
55
newlib=newlib:arc-2.3
66
uclibc=uClibc:arc-mainline-dev
7-
linux=linux:arc-3.18
7+
linux=linux:arc-next

dejagnu/baseboards/arc-sim-nsimdrv.exp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,11 @@ load_generic_config "sim"
3030
load_base_board_description "basic-sim"
3131

3232
# Any multilib options are set in an environment variable.
33-
process_multilib_options "$env(ARC_MULTILIB_OPTIONS)"
33+
if { [ info exists env(ARC_MULTILIB_OPTIONS) ] } {
34+
process_multilib_options "$env(ARC_MULTILIB_OPTIONS)"
35+
} else {
36+
process_multilib_options ""
37+
}
3438

3539
# We need extra procedures to determine for which cpu we simulate.
3640
search_and_load_file "library file" "tool-extra.exp" ${boards_dir}
@@ -39,7 +43,9 @@ set xldflags "-Wl,--defsym=__DEFAULT_HEAP_SIZE=256m \
3943
-Wl,--defsym=__DEFAULT_STACK_SIZE=1024m"
4044

4145
# Set common defaults
42-
set nsim_flags {}
46+
if ![info exists nsim_flags] {
47+
set nsim_flags {}
48+
}
4349
lappend nsim_flags \
4450
-on nsim_isa_spfp \
4551
-on nsim_isa_dpfp \

doc/release.rst

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,7 @@ Copy here extracted FTD2xx drivers, like::
6666

6767
Get Makefile.openocd from toolchain repository::
6868

69-
$ wget https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/\
70-
blob/arc-dev/windows-installer/Makefile.openocd
69+
$ wget https://raw.githubusercontent.com/foss-for-synopsys-dwc-arc-processors/toolchain/arc-dev/windows-installer/Makefile.openocd
7170

7271
Get source and checkout to tag::
7372

extras/arc-tcf-gcc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ sub processXML
125125
# Parse the linker file
126126
my $sn = '/config_list/configuration[@name="gnu_linker_command_file"]';
127127
parseXML ($tcf, $sn);
128-
my $cmdline = " -Wl,-marcv2elfb -L" . $dirname . " ";
128+
my $cmdline = " -Wl,-marcv2elfx -L" . $dirname . " ";
129129

130130

131131
# Parse the compiler options

windows-installer/Makefile.openocd

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,18 +46,14 @@ libusb_install/lib/libusb-1.0.a: libusb-$(LIBUSB_VERSION)
4646
$(MAKE) && \
4747
$(MAKE) install \
4848

49-
# ftd2xx directory must contains FTD2XX drivers. Process of their preparation
50-
# is not automated yet.
5149
openocd-config: openocd/Makefile
5250

53-
openocd/Makefile: libusb_install/lib/libusb-1.0.a ftd2xx openocd
51+
openocd/Makefile: libusb_install/lib/libusb-1.0.a openocd
5452
cd openocd && ./bootstrap
5553
cd openocd && \
5654
PKG_CONFIG_PATH=$(abspath libusb_install)/lib/pkgconfig \
5755
./configure --enable-ftdi --host=$(HOST) --disable-werror \
5856
--disable-shared --enable-static \
59-
--enable-legacy-ft2232_ftd2xx \
60-
--with-ftd2xx-win32-zipdir=$(abspath ftd2xx) \
6157
--prefix=$(INSTALL_DIR) \
6258
PKG_CONFIG=pkg-config
6359

@@ -68,7 +64,6 @@ openocd/src/openocd.exe: openocd/Makefile
6864

6965
openocd-install: openocd-build
7066
$(MAKE) -C openocd install install-pdf
71-
cp -a ftd2xx/i386/*.dll $(INSTALL_DIR)/bin
7267

7368
#
7469
# Clean

0 commit comments

Comments
 (0)