mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-01-27 01:27:21 +08:00
9b1167219a
When simulating arm code, the target program startup code (crt0) uses semihosting invocations to get the command line from the simulator. The simulator returns the command line and its size into the area passed in parameter. (ARM 32-bit specifications : http://infocenter.arm.com/help/topic/com.arm.doc.dui0058d/DUI0058.pdf chapter "5.4.19 SYS_GET_CMDLINE"). The memory area pointed by the semihosting register argument is located in .text section (usually not writtable (RX)). If we run this code on a simulator that respects this rights properties (qemu user-mode for instance), the command line will not be written to the .text program memory, in particular the length of the string. The program runs with an empty command line. This problem hasn't been seen earlier probably because qemu user-mode is not so much used, but this can happen with another simulator that refuse to write in a read-only segment. With this modification, the command line can be correctly passed to the target program. Changes: - libgloss/arm/crt0.S : Arguments passed to the AngelSWI_Reason_GetCmdLine semihosting invocation are placed into .data section instead of .text - libgloss/aarch64/crt0.S : Idem for aarch64 AngelSVC_Reason_GetCmdLine semihosting.
bfin - Analog Devices Blackfin processor. sparc - Fujitsu Sparclite board. Works on the ex930, ex931, ex933 hp74x - Hewlett Packard HP742 board. Also some support for the hp743. m68hc11 - Motorola 68HC11 or 68HC12 support. m68k - Motorola MVME135 and IDP board. For CPU32 systems. mep - Toshiba Media Processor. pa - WinBond and Oki boards with a PA. mips - R3000 support. Array Tech LSI33k based RAID disk controller. lm32 - Lattice Mico32 simulator. epiphany - Adapteva Epiphany multicore processor. or1k - OpenRISC 1000 processor.