aboutsummaryrefslogtreecommitdiff
path: root/libgloss
AgeCommit message (Collapse)AuthorFilesLines
2023-09-18Bring back libsim.a for riscvAlexey Lapshin2-6/+599
2023-08-24libgloss: add Xtensa portAlexey Lapshin33-10/+2257
Supported esp32 and esp32s2 boards: https://github.com/espressif/esp-toolchain-docs/blob/main/gcc/build-and-run-native-app.md
2023-08-09Add stub for getentropyTorbjörn SVENSSON3-0/+27
Example test case that fails with undefined reference to getentropy: Testing g++.robertl/eb77.C, -std=c++20 doing compile Executing on host: /build/gcc-13-2709-g9ac9fde961f/bin/arm-none-eabi-g++ /build/src/gcc/gcc/testsuite/g++.old-deja/g++.robertl/eb77.C -mthumb -march=armv6s-m -mcpu=cortex-m0 -mfloat-abi=soft -fdiagnostics-plain-output -fmessage-length=0 -std=c++20 -pedantic-errors -Wno-long-long -Wl,--start-group -lc -lm -Wl,--end-group --specs=nosys.specs -Wl,--allow-multiple-definition -Wl,-u,_isatty,-u,_fstat -Wl,-wrap,exit -Wl,-wrap,_exit -Wl,-wrap,main -Wl,-wrap,abort -Wl,g++_tg.o -lm -o ./eb77.exe (timeout = 800) spawn -ignore SIGHUP /build/gcc-13-2709-g9ac9fde961f/bin/arm-none-eabi-g++ /build/src/gcc/gcc/testsuite/g++.old-deja/g++.robertl/eb77.C -mthumb -march=armv6s-m -mcpu=cortex-m0 -mfloat-abi=soft -fdiagnostics-plain-output -fmessage-length=0 -std=c++20 -pedantic-errors -Wno-long-long -Wl,--start-group -lc -lm -Wl,--end-group --specs=nosys.specs -Wl,--allow-multiple-definition -Wl,-u,_isatty,-u,_fstat -Wl,-wrap,exit -Wl,-wrap,_exit -Wl,-wrap,main -Wl,-wrap,abort -Wl,g++_tg.o -lm -o ./eb77.exe pid is 28414 -28414 /build/gcc-13-2709-g9ac9fde961f/bin/../lib/gcc/arm-none-eabi/13.0.0/../../../../arm-none-eabi/bin/ld: /build/gcc-13-2709-g9ac9fde961f/bin/../lib/gcc/arm-none-eabi/13.0.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libstdc++.a(random.o): in function `std::(anonymous namespace)::__libc_getentropy(void*)': (.text._ZNSt12_GLOBAL__N_117__libc_getentropyEPv+0x8): undefined reference to `getentropy' /build/gcc-13-2709-g9ac9fde961f/bin/../lib/gcc/arm-none-eabi/13.0.0/../../../../arm-none-eabi/bin/ld: /build/gcc-13-2709-g9ac9fde961f/bin/../lib/gcc/arm-none-eabi/13.0.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libstdc++.a(random.o): in function `std::random_device::_M_init(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': (.text._ZNSt13random_device7_M_initERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x58): undefined reference to `getentropy' /build/gcc-13-2709-g9ac9fde961f/bin/../lib/gcc/arm-none-eabi/13.0.0/../../../../arm-none-eabi/bin/ld: /build/gcc-13-2709-g9ac9fde961f/bin/../lib/gcc/arm-none-eabi/13.0.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc.a(libc_a-arc4random.o): in function `_rs_stir': (.text._rs_stir+0x8): undefined reference to `getentropy' collect2: error: ld returned 1 exit status pid is -1 close result is 28414 exp6 0 1 output is /build/gcc-13-2709-g9ac9fde961f/bin/../lib/gcc/arm-none-eabi/13.0.0/../../../../arm-none-eabi/bin/ld: /build/gcc-13-2709-g9ac9fde961f/bin/../lib/gcc/arm-none-eabi/13.0.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libstdc++.a(random.o): in function `std::(anonymous namespace)::__libc_getentropy(void*)': (.text._ZNSt12_GLOBAL__N_117__libc_getentropyEPv+0x8): undefined reference to `getentropy' /build/gcc-13-2709-g9ac9fde961f/bin/../lib/gcc/arm-none-eabi/13.0.0/../../../../arm-none-eabi/bin/ld: /build/gcc-13-2709-g9ac9fde961f/bin/../lib/gcc/arm-none-eabi/13.0.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libstdc++.a(random.o): in function `std::random_device::_M_init(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': (.text._ZNSt13random_device7_M_initERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x58): undefined reference to `getentropy' /build/gcc-13-2709-g9ac9fde961f/bin/../lib/gcc/arm-none-eabi/13.0.0/../../../../arm-none-eabi/bin/ld: /build/gcc-13-2709-g9ac9fde961f/bin/../lib/gcc/arm-none-eabi/13.0.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc.a(libc_a-arc4random.o): in function `_rs_stir': (.text._rs_stir+0x8): undefined reference to `getentropy' collect2: error: ld returned 1 exit status status 1 compiler exited with status 1 FAIL: g++.old-deja/g++.robertl/eb77.C -std=c++20 (test for excess errors) Excess errors: (.text._ZNSt12_GLOBAL__N_117__libc_getentropyEPv+0x8): undefined reference to `getentropy' (.text._ZNSt13random_device7_M_initERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x58): undefined reference to `getentropy' (.text._rs_stir+0x8): undefined reference to `getentropy' UNRESOLVED: g++.old-deja/g++.robertl/eb77.C -std=c++20 compilation failed to produce executable Contributed by STMicroelectronics Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
2023-03-08libgloss/epiphany: Fix move instruction in crt0.SSebastian Huber1-1/+1
This patch relates to bug report: https://sourceware.org/bugzilla/show_bug.cgi?id=30212
2023-03-03arm: Restrict processor mode change when in hypervisor modeSrinath Parvathaneni1-7/+7
If a CPU implements EL2 as its highest exception level then programs using newlib may start in hypervisor mode. In that state it is not trivial to switch into the various EL1 modes to configure the individual exception stacks, so do not try.
2023-03-03arm: Fix the SP used in setting stack limit for standalone application.Srinath Parvathaneni1-2/+1
Move the instruction that saves SP before the mode check so that applications that start in USER mode correctly set the stack limit.
2023-02-22Fix libgloss/newlib build to conditionally use top include dirJeff Johnston6-2/+61
- conditionally use -idirafter option for arm
2023-01-13libgloss: csky: fix pointer-to-integer warningMike Frysinger1-1/+1
parameters is an array of integers, so assigning NULL (a pointer) doesn't make sense. Use 0 instead which produces the same code.
2023-01-13libgloss: merge csky into top-level MakefileMike Frysinger6-181/+506
Avoid a recursive make to speed things up a bit. A csky-elf build shows installed objects & libs produce same code.
2023-01-13libgloss: csky: use atexit to call fini-array functions.Xianmiao Qu1-0/+2
__libc_fini_array should be called upon exit to call the global termination functions in fini-array, use atexit to register it at __start.
2023-01-12libgloss: merge nios2 into top-level MakefileMike Frysinger6-142/+475
Avoid a recursive make to speed things up a bit. A nios2-elf build shows installed objects & libs produce same code.
2023-01-11libgloss: merge d30v into top-level MakefileMike Frysinger6-168/+112
Avoid a recursive make to speed things up a bit.
2023-01-11libgloss: merge arc into top-level MakefileMike Frysinger6-175/+122
Avoid a recursive make to speed things up a bit.
2023-01-11libgloss: merge arm into top-level MakefileMike Frysinger9-425/+627
Avoid a recursive make to speed things up a bit.
2023-01-11libgloss: arm: break newlib dependencyMike Frysinger5-4/+7
The libgloss port has been reaching back into newlib internals for a single header whose contents have been frozen for almost a decade. To break this backwards libgloss->newlib dependency, move the acle header to the srcroot include/ so everyone can use the same copy.
2023-01-09libgloss: merge aarch64 into top-level MakefileMike Frysinger8-347/+342
Avoid a recursive make to speed things up a bit.
2022-12-19libgloss: rs6000: fix incorrect install dir for xil filesMike Frysinger1-2/+2
The install steps were missing the multilib qualifier causing them to always install in the same location and stomp each other.
2022-12-19libgloss: merge arm configure script up a levelMike Frysinger9-5643/+99
Move the minor arm-specific logic to a dedicated variable so we can merge its configure logic up a level.
2022-12-19libgloss: merge aarch64 configure script up a levelMike Frysinger9-5431/+45
Move the minor aarch64-specific logic to a dedicated variable so we can merge its configure logic up a level.
2022-12-19libgloss: drop unused multi-build logicMike Frysinger2-69/+1
Now that aarch64 & arm have migrated off this, we can punt it.
2022-12-19libgloss: arm: inline multi-build logicMike Frysinger1-45/+47
Since no other port uses this custom libgloss multi-build.in logic, and it's making things difficult to unify, drop it all. The set of installed objects and their content should be the same. There is a difference in the builds: currently we compile all the objects in this subdir twice, but only a subset of them use a diff set of flags, and are actually installed (the librdimon.a and its objects). So this change speeds things up by removing the duplicate compilation. There is a short term cost in having to duplicate the compile rules for the files that are different, but this is minor when compared to being able to delete the unused multi-build logic (which we'll do in a sep commit), and we'll be able to clean this up when we move the code to unified automake. None of this should be confused with the common multilib logic. This is *multi-build* which is processed in parallel.
2022-12-19libgloss: aarch64: delete unused multi-build logicMike Frysinger1-43/+16
This logic looks like it was copied from the arm port, but it isn't actually used here. Since no other port uses this custom libgloss multi-build.in logic, and it's making things difficult to unify, and aarch64 isn't even using it, drop it all. The set of installed objects and their content should be the same. Once we move this to unified automake, if we want to readd support for subdir multi-builds, it'll be a lot easier as we can just add another set of objects with custom flags. None of this should be confused with the common multilib logic. This *multi-build* which is processed in parallel.
2022-12-14libgloss: bfin: switch to CPPASCOMPILE for .S->.oMike Frysinger2-16/+16
We're compiling .S files, so use CPPAS instead of CC to compile since the point of CPPAS is to preprocess+assemble .S files.
2022-10-20libgloss: riscv: Install machine/syscall.hSimon Cook2-21/+50
A recent change to the Makefile.in for riscv resulted in the machine/syscall.h header not being installed. This updates the file to install this file again. Signed-off-by: Simon Cook <simon.cook@embecosm.com>
2022-08-26libgloss: riscv: Convert to non-recursive automakePalmer Dabbelt6-357/+1264
PR 29515 points out our documentation builds are broken, let's just move over to the new non-recursive builds. Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
2022-05-18Use global atexit data for all configurationsSebastian Huber3-22/+19
For the exit processing only members of _GLOBAL_REENT were used by default. If the _REENT_GLOBAL_ATEXIT option was enabled, then the data structures were provided through dedicated global objects. Make this option the default. Remove the option. Rename struct _reent members _atexit and _atexit0 to _reserved_6 and _reserved_7, respectively. Provide them only if _REENT_BACKWARD_BINARY_COMPAT is defined.
2022-04-27libgloss: pru: Fix _open syscal argumentsDimitar Dimitrov1-1/+17
The _open() C function is declared as having variable arguments in newlib, so second and third arguments are passed on stack. Add code to move them into registers, since that's where the PRU simulator expects them. Issue was exposed by the GCC test gcc.c-torture/execute/fprintf-2.c, which relies on tmpnam implementation to pass correct flags to _open. Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
2022-03-20Revert accidental change to v850/sim.ldJeff Law1-1/+1
2022-03-19Avoid using common symbols in v850 libglossJeff Law26-26/+26
I've had this lying around for probably a year or two at this point. It just changes all the instance of "errno" from a common symbol to an extern. I can't offhand recall where the actual definition is, but it certainly exists in the generic code.
2022-03-04libgloss: add new Build System Internals node to the menuMike Frysinger1-1/+2
Seems that some versions of texinfo require the @menu to have all entries at the top level, so add the new build one to it.
2022-03-01libgloss: merge lm32 into top-level MakefileMike Frysinger6-126/+82
Avoid a recursive make to speed things up a bit. This drops the header install logic because the lm32/ subdir doesn't actually have any header files to install.
2022-03-01libgloss: use m4_foreach_w to simplify the logic a bitMike Frysinger2-22/+24
It's functionally the same, but the configure.ac code is simpler and less boiler plate duplicated.
2022-02-28libgloss: add a little build system generation documentationMike Frysinger1-1/+49
This is a bit of an abbreviated form of what's in the Newlib subdir, but with emphasis on Libgloss-specific parts, and anything unique to it. I haven't put too much effort in.
2022-02-25libgloss: iq2000: fix prototypeMike Frysinger1-1/+1
2022-02-25libgloss: switch to AM_PROG_ARMike Frysinger10-15/+776
Now that we require Automake 1.15, we can use this macro rather than set the tool up ourselves. The current code doesn't properly search for a prefixed ar tool as-is.
2022-02-24libgloss: document & localize custom multi-do ruleMike Frysinger3-9/+14
The multi-build.in file in libgloss duplicates common multilib logic in the root source tree. Document it a bit, and rename the rule so it doesn't clash with the common multi-do rule. This will let us use them in the same makefile so we can merge aarch64/ & arm/ up (as the only targets that use this local multi-build.in atm).
2022-02-24libgloss: finish migration to AM_PROG_ASMike Frysinger11-179/+1633
When merging iq2000 up a level, it included a partial conversion to AM_PROG_AS in the common directory. Finish it for all directories to kill off the custom LIB_AM_PROG_AS which we no longer need since we require Automake 1.15 now.
2022-02-24libgloss: switch to standard AC_PROG_CCMike Frysinger9-2032/+1584
Now that we use AC_NO_EXECUTABLES, and we require a recent version of autoconf, we don't need to define our own copies of these macros. So switch to the standard AC_PROG_CC.
2022-02-23libgloss: merge sparc configure script up a levelMike Frysinger9-4407/+38
Move the minor sparc-specific logic to a dedicated variable so we can merge its configure logic up a level.
2022-02-22libgloss: enable maintainer mode supportMike Frysinger4-4/+76
Use AM_MAINTAINER_MODE so devs have to opt-in to automatic rebuilds of autotools. This matches what newlib (and most every other GNU toolchain package) does with automake.
2022-02-22Make __sdidinit unusedMatt Joyce2-2/+2
Remove dependency on __sdidinit member of struct _reent to check object initialization. Like __sdidinit, the __cleanup member of struct _reent is initialized in the __sinit() function. Checking initialization against __cleanup serves the same purpose and will reduce overhead in the __sfp() function in a follow up patch.
2022-02-17libgloss: have README point to the manualMike Frysinger2-16/+16
The README has such little info in it, so point people to the much more extensive porting manual.
2022-02-17libgloss: merge mips configure script up a levelMike Frysinger8-4499/+132
Move the minor mips-specific logic to a dedicated file & namespace them so we can merge its configure logic up a level.
2022-02-17libgloss: merge wince configure script up a levelMike Frysinger11-6315/+151
Move the minor wince-specific logic to a dedicated file & namespace them so we can merge its configure logic up a level. The makefile is a bit tricky, but maybe it still works.
2022-02-16libgloss: build with -nostdincMike Frysinger2-0/+31
We don't want libgloss building against C library headers that happened to be installed with the toolchain, so add -nostdinc to the build. We still need access to the compiler internal headers, so probe those and include them via -isystem. This uses a similar probing style as glibc, which has used it for over a decade, so it should be safe & stable. This should prevent any latent bugs due to testing with a toolchain that is fully configured & installed already.
2022-02-16libgloss: sparc: merge libsys/ up a levelMike Frysinger6-4305/+9
The libsys/configure script isn't doing anything useful, so merge the logic up to the parent dir.
2022-02-16libgloss: aarch64: merge cpu-init/ up a levelMike Frysinger6-4501/+14
The cpu-init/configure script isn't doing anything useful, so merge the logic up to the parent dir. This is how the arm/ tree integrates its cpu-init/ subdir too.
2022-02-16libgloss: merge mn10300 configure script up a levelMike Frysinger8-4421/+57
Move the minor mn10300-specific logic to a dedicated file & namespace them so we can merge its configure logic up a level. part_specific_obj wasn't used anywhere (looks like copy & paste left over from mips), so drop it entirely.
2022-02-16libgloss: merge mn10200 configure script up a levelMike Frysinger7-4399/+20
The mn10200-specific logic (setting up part_specific_obj) isn't used by the build anywhere -- looks like copy & paste left overs from mips. So punt that & merge the target_makefile_frag_path up to the top-level.
2022-02-16libgloss: merge m68k configure script up a levelMike Frysinger8-5506/+87
Move the minor m68k-specific logic to a dedicated file & namespace them so we can merge its configure logic up a level.