Age | Commit message (Collapse) | Author | Files | Lines |
|
gcc-8.1 for xtensa miscompiles uClibc dynamic linker due to gcc PR
target/65416. The build completes successfully, but the binary is
non-functional because the following fragment in the _dl_get_ready_to_run
in ld-uClibc.so overwrites register spill area on stack causing register
corruption in the previous call frame and a subsequent crash:
419f: f0c1b2 addi a11, a1, -16
41a2: 1ba9 s32i.n a10, a11, 4
41a4: 0bc9 s32i.n a12, a11, 0
41a6: 5127f2 l32i a15, a7, 0x144
41a9: 1765b2 s32i a11, a5, 92
41ac: 4e2782 l32i a8, a7, 0x138
41af: 146af2 s32i a15, a10, 80
41b2: 001b10 movsp a1, a11
The crash terminates the init process and causes kernel panic.
The fix prevents reordering of movsp opcode and any access to the stack
frame memory and is applicable to all existing gcc versions.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
|
|
|
|
|
|
|
|
Use git-version-gen to generate version info
|
|
Suggested-by: Chris Packham <judge.packham@gmail.com>
Signed-off-by: Alexey Neyman <stilor@att.net>
|
|
Make patch order overridable by individual packages
|
|
Signed-off-by: Alexey Neyman <stilor@att.net>
|
|
Fix gcc8 regressions
|
|
They're written in ARM dialect, and `ldmia r14, {r14, pc}` is not accepted in T2
encoding. GCC8 changed the list of multilibs for arm-*, which now includes a
variant with CPU that supports T2 but not A1 encoding.
Signed-off-by: Alexey Neyman <stilor@att.net>
|
|
Signed-off-by: Alexey Neyman <stilor@att.net>
|
|
Signed-off-by: Alexey Neyman <stilor@att.net>
|
|
Signed-off-by: Alexey Neyman <stilor@att.net>
|
|
Signed-off-by: Alexey Neyman <stilor@att.net>
|
|
... as it may need to override them for building runtime-selectable code.
Signed-off-by: Alexey Neyman <stilor@att.net>
|
|
packages: add uClibc-ng 1.0.30 and last Linux 2.6.32.x
|
|
Signed-off-by: Dima Krasner <dima@securingsam.com>
|
|
Signed-off-by: Dima Krasner <dima@dimakrasner.com>
|
|
Add support and sample for uclibc multilib toolchain for ARC
|
|
There's no point in keeping samples which are in its essense
just a sub-set of multilib toolchain.
But still we'd like to cover quite unusual but really existing
case - ARC750, i.e. ARC700 with MMU but without so-called
atomic instructions (LLOCK/SCOND). To support this HW variation
we need:
1) Compile all target binaries without "-matomics" or even
better "-mno-atomics" so that's even future-proof
(as we may decide to enable "-matomics" by default for Linux
targets which is a recommented setup).
2) Configure libc such that it uses Linux-kernel-assisted implementation
of atomic operation via "arc_usr_cmpxchg" syscall,
see https://cgit.uclibc-ng.org/cgi/cgit/uclibc-ng.git/commit/?id=b985fa069187e4c5a7ee84213d9fbead2f219ce5
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
|
|
In case we build for ARC core which has no support of atomic ops among
other things we need to configure libc to use Linux kernel helper to emulate
HS atomic ops. This is done with disabling of CONFIG_ARC_HAS_ATOMICS in uClibc.
Currently we __remove__ this option from .config but this makes no sense as
its default state is "y" so we need to explicitly disable it instead.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
|
|
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
|
|
We never bothered to build multilibbed Linux toolchains for ARC
and so we ended-up with no support of multilib for arc*-*-linux-*
targets in GCC. That is now fixed in upstream by the following commit:
https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=0eacfbcb2bf1834294f468a2bb41fe5d5e8d3883
Once the fix mentioned above is applied on top of GCC 8.1.0 we may easily build
multilibbed uClibc toolchain for ARC.
Note sice Glibc port for ARC is still in review process we cannot build any Glibc
toolchains for ARC with pure upstream components, for that we eiter need Glibc
sources from our Github repo or apply a set of patches on top of Glibc 2.27 - we'll
try to address this later though.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
|
|
ARC: Add support and sample for baremetal/elf32 multilib toolchain
|
|
ARC: Fix Linux kernel compilation for ARC700
|
|
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
|
|
hs4x and hs4xd were mistakenly mentioned in MULTILIB_OPTION/DIRNAMES
before real support of those CPUs was accepted in upstream.
That breaks multilib toolchains building becase we're trying to compile
for not yet known CPU.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
|
|
Without this fix we're getting the following error on attempt to build
Linux kernel:
--------------------------------->8---------------------------------
xfrm4_mode_tunnel.s: Assembler messages:
xfrm4_mode_tunnel.s:188: Error: operand out of range (128 is not between -
128 and 127)
--------------------------------->8---------------------------------
The fix is taken from
https://github.com/foss-for-synopsys-dwc-arc-processors/gcc/commit/d8d716f49c0057e239f2b64e7d902046b92d244f
and it is supposed to be merged in upstream GCC sources soonish.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
|
|
Doh. Change the name of the substituted variable
|
|
... to match the substituted name.
Fixes #966.
Signed-off-by: Alexey Neyman <stilor@att.net>
|
|
Fix building older glibc
|
|
Add ARC architecture support
|
|
ARC700 is based on ARCompact (AKA ARCv1 ISA) while ARC HS38 is
based on modern ARCv2 ISA.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
|
|
Synopsys' DesignWare ARC Processors are a family of 32-bit CPUs
that SoC designers can optimize for a wide range of uses,
from deeply embedded to high-performance host applications in a variety
of market segments.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
|
|
... so instead, disable -Werror for older versions of glibc.
Signed-off-by: Alexey Neyman <stilor@att.net>
|
|
getlogin/getlogin_r, zic
Signed-off-by: Alexey Neyman <stilor@att.net>
|
|
- Incompatible function type for ifunc alias
- Multiple statements macro expansion in strftime
- if_nametoindex size checking
Signed-off-by: Alexey Neyman <stilor@att.net>
|
|
Restore a missing GDB option
|
|
(whether GDB has --disable-build-with-cxx) and use it.
Signed-off-by: Alexey Neyman <stilor@att.net>
|
|
Add GCC 8.1
|
|
Signed-off-by: Alexey Neyman <stilor@att.net>
|
|
Preserve each variant of libwinpthread.dll
|
|
... in the corresponding /lib directory. Mingw-w64 installs it to /bin,
so multiple variants in a multilib configuration override each other.
Signed-off-by: Alexey Neyman <stilor@att.net>
|
|
Add unzip to archlinux image
|
|
Also, build containers with --no-cache: distributions like ArchLinux
retire their packages very quickly, need to always use up-to-date
package databases.
Signed-off-by: Alexey Neyman <stilor@att.net>
|
|
Needed by android sample.
Signed-off-by: Alexey Neyman <stilor@att.net>
|
|
... in the shared .build directory.
Signed-off-by: Alexey Neyman <stilor@att.net>
|
|
Docker configuration for Gentoo + a bunch of fixes
|
|
Also improve logging (add an ability to log commands/files/environment variables
to config.log)
Signed-off-by: Alexey Neyman <stilor@att.net>
|
|
... which now defaults to --enable-mpers=yes, which attempts to
invoke aarch64-*-gcc with -m32 and fails.
Signed-off-by: Alexey Neyman <stilor@att.net>
|