aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2024-11-19Add libaio to SUBLIBS built for CygwinMark Geisert2-1/+8
Provide libaio.a for those projects (such as stress-ng) checking for POSIX aio support by looking for this library at configure time. A release note is provided for Cygwin 3.6.0. Signed-off-by: Mark Geisert <mark@maxrnd.com> Fixes: N/A (new code)
2024-11-19Cygwin: check_dir_not_empty: Avoid leaving the allocated buffer.Bernhard Übelacker2-4/+9
The pointer pfni gets allocated the buffer at the begin, and is used in the NtQueryDirectoryFile call before the loops. In the loop the pointer pfni is also used as iterator. Therefore it holds no longer the initial buffer at the call to NtQueryDirectoryFile in the while conditition at the bottom. Fixes: 28fa2a72f8106 ("* syscalls.cc (check_dir_not_empty): Check surplus directory entries") Co-authored-by: Corinna Vinschen <corinna@vinschen.de> Signed-off-by: Bernhard Übelacker <bernhardu@mailbox.org>
2024-11-18libgloss: cris: Correct lcrt0.c for C23Hans-Peter Nilsson1-2/+2
GCC commit r15-5326-gf242f79b8afe defaults to -std=gnu23, and in C23 void foo() means void foo(void), so old-style prototypes now get a compilation error: /x/libgloss/cris/lcrt0.c:107:1: error: conflicting types for 'start1';\ have 'void(int, char **, char **)' 107 | start1 (int argc, char **argv, char **env) | ^~~~~~ /x/libgloss/cris/lcrt0.c:105:13: note: previous declaration of 'start1\ ' with type 'void(void)' 105 | static void start1 () __asm__ ("__start1") __attribute ((__use\ d__)); Fix by providing a full prototype.
2024-11-12Cygwin: Change pthread_sigqueue() to accept thread idMark Geisert3-5/+8
Change the first parameter of pthread_sigqueue() to be a thread id rather than a thread pointer. The change is to match the Linux implementation of this function. The user-visible function prototype is changed in include/pthread.h. The pthread_sigqueue() function is modified to work with a passed-in thread id rather than an indirect thread pointer as before. (It used to be "pthread_t *thread", i.e., class pthread **.) The release note for Cygwin 3.5.5 is updated. Reported-by: Christian Franke <Christian.Franke@t-online.de> Addresses: https://cygwin.com/pipermail/cygwin/2024-September/256439.html Signed-off-by: Mark Geisert <mark@maxrnd.com> Fixes: 50350cafb375 ("* cygwin.din (pthread_sigqueue): Export.")
2024-11-11Cygwin: console Add comment for the recent changeTakashi Yano1-0/+9
Fixes: 30d266947842 ("Cygwin: console: Fix clean up conditions in close()") Suggested-by: Brian Inglis <Brian.Inglis@SystematicSW.ab.ca> Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
2024-11-11Cygwin: pthread: Correct pthread_cleanup macros to avoid potential syntax errorsShaobo Song1-4/+7
This commit revises `pthread_cleanup_push` and `pthread_cleanup_pop` macros to use a `do { ... } while(0)` wrapper, preventing syntax errors when used in certain contexts. The original code could fail when they are wrapped within a `do { ... } while(0)`, causing unintended behavior or compilation issues. Example of error: #include <pthread.h> #define pthread_cleanup_push_wrapper(_fn, _arg) do { \ pthread_cleanup_push(_fn, _arg); \ } while (0) #define pthread_cleanup_pop_wrapper(_execute) do { \ pthread_cleanup_pop(_execute); \ } while (0) void cleanup_fn (void *arg) {} void *thread_func (void *arg) { pthread_cleanup_push_wrapper(cleanup_fn, NULL); pthread_cleanup_pop_wrapper(1); return NULL; } int main (int argc, char **argv) { pthread_t thread_id; pthread_create(&thread_id, NULL, thread_func, NULL); } This would fail due to unmatched braces in the macro expansion. The new structure ensures the macro expands correctly in all cases. Fixes: 007276b30e0a ("* cygwin.din: Add _pthread_cleanup_push and _pthread_cleanup_pop.") Signed-off-by: Shaobo Song <shnusongshaobo@gmail.com>
2024-11-08Cygwin: console: Fix clean up conditions in close()Takashi Yano1-3/+3
Previously, the condition to clean up input/output mode was based on wrong premise. This patch fixes that. Fixes: 8ee8b0c974d7 ("Cygwin: console: Use GetCurrentProcessId() instead of myself->dwProcessId") Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
2024-11-07Cygwin: release/3.5.5: fetch missing entries from cygwin-3_5-branchCorinna Vinschen1-0/+6
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2024-11-06Cygwin: console: Use GetCurrentProcessId() instead of myself->dwProcessIdTakashi Yano1-13/+13
The commit 90ddab98780d uses myself->dwProcessId to get windows pid. However, it will be overridden in stub process if exec() is called. With this patch, GetCurrentProcessId() instead of myself->dwProcessId. Fixes: 90ddab98780d ("Cygwin: console: Re-fix open() failure on exec() by console owner") Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
2024-11-06Cygwin: console: Re-fix open() failure on exec() by console ownerTakashi Yano4-133/+117
Previous fix (commit df0953aa298c) fixes only a part of the problem. Since exec() overrides the cygwin pid of the caller process, it makes console owner handling complex. This patch makes console use Windows pid as the owner pid (con.owner) instead of cygwin pid to make the handling simpler. Fixes: df0953aa298c ("Cygwin: console: Fix open() failure when the console owner calls exec().") Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
2024-11-06Cygwin: pipe: Fix incorrect write length in raw_write()Takashi Yano1-4/+2
If the write length is more than the pipe space in non-blocking mode, the write length is wrongly set to 65536. This causes access violation. This patch fixes that. Fixes: 7ed9adb356df ("Cygwin: pipe: Switch pipe mode to blocking mode by default") Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
2024-11-05Cygwin: console: Fix open() failure when the console owner calls exec().Takashi Yano1-0/+6
Currently, open() tries to attach to the console which is owned by the console owner process. However, when the owner process calls exec(), AttachConsole() to dwProcessId may sometimes fail due to unlucky timing. With this patch, open() tries to attach also to exec_dwProcessId if attaching to dwProcessId fails. That is, open() tries to attach to both the stub process and target process to prevent the above situation. Fixes: 3721a756b0d8 ("Cygwin: console: Make the console accessible from other terminals.") Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
2024-11-04Replace references to C2x with C23Lenard Mollenkopf1-2/+2
Signed-off-by: Lenard Mollenkopf <newlib@lenardmollenkopf.de>
2024-11-04sys/features.h: Use _ISOC23_SOURCE instead of _ISOC23_SOURCE and remap ↵Lenard Mollenkopf1-7/+14
_ISOC2x_SOURCE to _ISOC23_SOURCE Signed-off-by: Lenard Mollenkopf <newlib@lenardmollenkopf.de>
2024-11-01Cygwin: sigfe: Fix a bug that signal handler destroys fpu statesTakashi Yano2-41/+53
Previously, sigfe had a bug that the signal handler destroys fpu state. This is caused by fninit instruction in sigdelayed. With this patch, saving/restoring the FPU/SIMD state is done using fxsave/fxrstor or xsave/xrstor rather than fnstcw/fldcw, stmxcsr/ldmxcsr and push/pop xmm0-xmm15. Since xsave/xrstor is used, not only x87/MMX/SSE states but also AVX/AVX2/AVX-512 states can be maintained unlike before. Addresses: https://cygwin.com/pipermail/cygwin/2024-October/256503.html Fixes: ed89fbc3ff11 ("* gendef (sigdelayed (x86_64)): Save and restore FPU control word.") Reported-by: Christian Franke <Christian.Franke@t-online.de> Suggested-by: Brian Inglis <Brian.Inglis@SystematicSW.ab.ca> Reviewed-by: Corinna Vinschen <corinna@vinschen.de> Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
2024-11-01Cygwin: pipe: Switch pipe mode to blocking mode by defaultTakashi Yano8-519/+259
Previously, cygwin read pipe used non-blocking mode although non- cygwin app uses blocking-mode by default. Despite this requirement, if a cygwin app is executed from a non-cygwin app and the cygwin app exits, read pipe remains on non-blocking mode because of the commit fc691d0246b9. Due to this behaviour, the non-cygwin app cannot read the pipe correctly after that. Similarly, if a non- cygwin app is executed from a cygwin app and the non-cygwin app exits, the read pipe mode remains on blocking mode although cygwin read pipe should be non-blocking mode. These bugs were provoked by pipe mode toggling between cygwin and non-cygwin apps. To make management of pipe mode simpler, this patch has re-designed the pipe implementation. In this new implementation, both read and write pipe basically use only blocking mode and the behaviour corresponding to the pipe mode is simulated in raw_read() and raw_write(). Only when NtQueryInformationFile (FilePipeLocalInformation) fails for some reasons, the raw_read()/ raw_write() cannot simulate non-blocking access. Therefore, the pipe mode is temporarily changed to non-blocking mode. Moreover, because the fact that NtSetInformationFile() in set_pipe_non_blocking(true) fails with STATUS_PIPE_BUSY if the pipe is not empty has been found, query handle is not necessary anymore. This allows the implementation much simpler than before. Addresses: https://github.com/git-for-windows/git/issues/5115 Fixes: fc691d0246b9 ("Cygwin: pipe: Make sure to set read pipe non-blocking for cygwin apps."); Reported-by: isaacag, Johannes Schindelin <Johannes.Schindelin@gmx.de> Reviewed-by: Corinna Vinschen <corinna@vinschen.de>, Ken Brown <kbrown@cornell.edu> Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
2024-10-31Cygwin: pipe: fix shift valueCorinna Vinschen1-1/+1
The expression computing the next-less-power of 2 for the next write when the pipe buffer is getting filled up allows negative shift values. This works on Intel CPUs because the shift expression only evaluates the 5 LSBs, but it's undefined behaviour per the C standard. Use the correct expression to get a positive shift value. Fixes: 170e6badb621 ("Cygwin: pipe: improve writing when pipe buffer is almost full") Reported-by: Takashi Yano <takashi.yano@nifty.ne.jp> Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2024-10-31Cygwin: console: Inherit pcon hand over from parent ptyTakashi Yano7-3/+90
There was a long-standing issue that pseudo console ownership could not hand over from the process whose ctty is /dev/cons* rather than /dev/pty*. This problem happens when a cygwin app starts non-cygwin app in a pty, then the non-cygwin app starts multiple cygwin apps, and the non-cygwin app ends before the second cygwin apps end. In this case, the stub process of the non-cygwin app hands over the ownership of pcon to one of the second cygwin apps, however, this app does not hand over the ownership of pcon to another second cygwin app. This is due to the fact that the hand-over feature is implemented only in fhandler_pty_slave but not in fhandler_console. With this patch, the second cygwin apps check if their console device is inside a pseudo console, and if so, it tries to hand over the ownership of the pseudo console to anther process that is attached to the same pseudo console. Addresses: https://cygwin.com/pipermail/cygwin/2024-February/255388.html Fixes: 253352e796ff ("Cygwin: pty: Allow multiple apps to enable pseudo console simultaneously.") Reported-by: lmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>, Hossein Nourikhah <hossein@libreoffice.org> Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
2024-10-31Cygwin: lockf: Make lockf() return ENOLCK when too many locksTakashi Yano2-8/+78
Previously, lockf() printed a warning message when the number of locks per file exceeds the limit (MAX_LOCKF_CNT). This patch makes lockf() return ENOLCK in that case rather than printing the warning message. Addresses: https://cygwin.com/pipermail/cygwin/2024-October/256528.html Fixes: 31390e4ca643 ("(inode_t::get_all_locks_list): Use pre-allocated buffer in i_all_lf instead of allocating every lock. Return pointer to start of linked list of locks.") Reported-by: Christian Franke <Christian.Franke@t-online.de> Reviewed-by: Corinna Vinschen <corinna@vinschen.de> Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
2024-10-31Cygwin: lockf: Fix adding a new lock over multiple locksTakashi Yano2-3/+8
Previously, adding a new lock by lockf() over multiple existing locks failed. This is due to a bug that lf_setlock() tries to create a lock that has already been created. This patch fixes the issue. Addresses: https://cygwin.com/pipermail/cygwin/2024-October/256528.html Fixes: a998dd705576 ("* flock.cc: Implement all advisory file locking here.") Reported-by: Christian Franke <Christian.Franke@t-online.de> Reviewed-by: Corinna Vinschen <corinna@vinschen.de> Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
2024-10-28sys/features.h: Spelling _ISOC2x_SOURCE is not C11Lenard Mollenkopf1-1/+1
2024-10-23Cygwin: timer_delete: Fix return valueChristian Franke2-0/+3
timer_delete() always returned failure. This issue has been detected by 'stress-ng --hrtimers 1'. Fixes: 229ea3f23c015 ("Cygwin: posix timers: reimplement using OS timer") Signed-off-by: Christian Franke <christian.franke@t-online.de>
2024-10-23cygwin: pread/pwrite: prevent EBADF error after fork()Christian Franke2-0/+6
If the parent process has already used pread() or pwrite(), these functions fail with EBADF if used on the inherited fd. Ensure that fix_after_fork() is called to invalidate the prw_handle. This issue has been detected by 'stress-ng --pseek 1'. Fixes: c36cd56c548a ("* fhandler.cc (fhandler_base::open): Drop local create_options variable.") Signed-off-by: Christian Franke <christian.franke@t-online.de>
2024-09-19powf: Fixed another precision bug in powf() (FreeBSD)Fabian Schriever1-1/+1
Fixed another precision bug in powf(). This one is in the computation [t=p_l+p_h High]. We multiply t by lg2_h, and want the result to be exact. For the bogus float case of the high-low decomposition trick, we normally discard the lowest 12 bits of the fraction for the high part, keeping 12 bits of precision. That was used for t here, but it doesnt't work because for some reason we only discard the lowest 9 bits in the fraction for lg2_h. Discard another 3 bits of the fraction for t to compensate. This bug gave wrong results like: powf(0.9999999, -2.9999995) = 1.0000002 (should be 1.0000001) hex values: 3F7FFFFF C03FFFFE 3F800002 3F800001 As explained in the log for the previous commit, the bug is normally masked by doing float calculations in extra precision on i386's, but is easily detected by ucbtest on systems that don't have accidental extra precision. Reference: https://github.com/freebsd/freebsd-src/commit/5f20e5ce7f396ad064bfc1f45b8075ea1c0580f9 Original Author: Bruce Evans
2024-09-19powf: Fixed 2 bugs in the computation /* t_h=ax+bp[k] High */. (FreeBSD)Fabian Schriever1-1/+2
(1) The bit for the 1.0 part of bp[k] was right shifted by 4. This seems to have been caused by a typo in converting e_pow.c to e_powf.c. (2) The lower 12 bits of ax+bp[k] were not discarded, so t_h was actually plain ax+bp[k]. This seems to have been caused by a logic error in the conversion. These bugs gave wrong results like: powf(-1.1, 101.0) = -15158.703 (should be -15158.707) hex values: BF8CCCCD 42CA0000 C66CDAD0 C66CDAD4 Fixing (1) gives a result wrong in the opposite direction (hex C66CDAD8), and fixing (2) gives the correct result. ucbtest has been reporting this particular wrong result on i386 systems with unpatched libraries for 9 years. I finally figured out the extent of the bugs. On i386's they are normally hidden by extra precision. We use the trick of representing floats as a sum of 2 floats (one much smaller) to get extra precision in intermediate calculations without explicitly using more than float precision. This trick is just a pessimization when extra precision is available naturally (as it always is when dealing with IEEE single precision, so the float precision part of the library is mostly misimplemented). (1) and (2) break the trick in different ways, except on i386's it turns out that the intermediate calculations are done in enough precision to mask both the bugs and the limited precision of the float variables (as far as ucbtest can check). ucbtest detects the bugs because it forces float precision, but this is not a normal mode of operation so the bug normally has little effect on i386's. On systems that do float arithmetic in float precision, e.g., amd64's, there is no accidental extra precision and the bugs just give wrong results. Reference: https://github.com/freebsd/freebsd-src/commit/12be4e0d5a54a6750913aee2564d164baa71f0dc Original Author: Bruce Evans
2024-09-19powf: Fix the hi+lo decomposition for 2/(3ln2) (FreeBSD)Fabian Schriever1-2/+2
The decomposition needs to be into 12+24 bits of precision for extra- precision multiplication, but was into 13+24 bits. On i386 with -O1 the bug was hidden by accidental extra precision, but on amd64, in 2^32 trials the bug caused about 200000 errors of more than 1 ulp, with a maximum error of about 80 ulps. Now the maximum error in 2^32 trials on amd64 is 0.8573 ulps. It is still 0.8316 ulps on i386 with -O1. The nearby decomposition of 1/ln2 and the decomposition of 2/(3ln2) in the double precision version seem to be sub-optimal but not broken. Reference: https://github.com/freebsd/freebsd-src/commit/b4437c3d322a0f6d23d12b6f76d2fc72d2ff0ec2 Original Author: Bruce Evans
2024-09-16Make sure mallinfo structure matches newlib's malloc.hJeff Johnston1-10/+10
2024-09-02Replace __restrict with __restrict_arr in regex.hyang.zhang1-1/+1
when a C++ source file include this header file, it would build fail. Signed-off-by: yang.zhang <zhangyang01@kylinos.cn>
2024-09-02newlib: esp: add dirent.h header fileAlexey Lapshin4-8/+63
Support dirent in *-esp-* toolchains
2024-09-02newlib: xtensa: remove sys/xtensa. use machine/xtensaAlexey Lapshin15-115/+13
Remove sys/xtensa that is actually duplicate newlib's code. Move used code to machine/xtensa or to libgloss
2024-09-02Cygwin: pipe: Fix a regression that raw_write() slows downTakashi Yano2-2/+7
After the commit 7f3c22532577, writing to pipe extremely slows down. This is because cygwait(select_sem, 10, cw_cancel) is called even when write operation is already completed. With this patch, the cygwait() is called only if the write operation is not completed. Addresses: https://cygwin.com/pipermail/cygwin/2024-August/256398.html Fixes: 7f3c22532577 ("Cygwin: pipe: handle signals explicitely in raw_write") Reported-by: Jim Reisert AD1C <jjreisert@alum.mit.edu> Reviewed-by: Corinna Vinschen <corinna@vinschen.de> Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
2024-08-31Cygwin: console: Disable cons_master_thread in win32-input-modeTakashi Yano3-2/+14
When win32-input-mode (which is supported by Windows Termainal) is set by "\033[?9001h", cons_master_thread does not work properly and consumes larger and larger memory space. This is because sending event by WriteConsoleInput() is translated into the sequence that is used by win32-input-mode. Due to this behaviour, write-back of the INPUT_RECORDs does not work as expected. With this patch, cons_master_thread is disabled on win32-input-mode where the signal keys such as Ctrl-C, Ctrl-Z etc. never comes. Addresses: https://cygwin.com/pipermail/cygwin/2024-August/256380.html Fixes: ff4440fcf768 ("Cygwin: console: Introduce new thread which handles input signal.") Reported-by: Adamyg Mob <adamyg.mob@gmail.com> Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
2024-08-22Cygwin: add release message for latest pipe changesCorinna Vinschen1-0/+3
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2024-08-22Cygwin: Add locale patches to release messageCorinna Vinschen1-0/+3
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2024-08-22locales: Fix definition of lc_messages_T::codesetCorinna Vinschen1-1/+3
nl_langinfo_l accesses lc_messages_T::codeset as soon as __HAVE_LOCALE_INFO__ is defined, but codeset only exists if __HAVE_LOCALE_INFO_EXTENDED__ is defined. Fix this by defining lc_messages_T::codeset depending on __HAVE_LOCALE_INFO__. Fixes: ac7f1d5e931c ("Get rid of LCID, reformat type definitions in setlocale.h") Reported-by: Inglis <Brian.Inglis@SystematicSW.ab.ca> Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2024-08-22nl_langinfo_l: drop erroneus messages::codeset entryCorinna Vinschen1-1/+0
The nl_ext array contains offsets into the extended info of locale structures, the index being equivalent to the nl_item values in langinfo.h. For the lc_messages_T struct, nl_ext erroneusly contains an entry for the codeset member, which is in fact not part of the extended info in nl_item. However, due to that, the offsets for subsequent entries are off by one. Fix this by dropping the messages::codeset entry from nl_ext. Fixes: d47d5b850bed ("Extend locale support to maintain wide char values of native strings") Reported-by: Brian Inglis <Brian.Inglis@systematicsw.ab.ca> Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2024-08-21arc64: Add port for Synopsys DesignWare ARCv3 ISAYuriy Kolerov33-528/+4639
Synopsys ARCv3 ISA includes 32-bit ARC HS5x targets and 64-bit ARC HS6x targets. Both CPU families are placed in "arc64" subdirectories as it done for GCC port. Target name arc64 is used for historical reasons and Synopsys ARCv3 baremetal toolchains contain multilib configurations both for 32-bit and 64-bit families. arc32 target name is reserved for 32-bit ARC HS5x targets in case of non-multilib 32-bit builds. Note that libgloss libraries for ARCv3 are compatible with libgloss for ARCv1/2. Thus, Makefile.inc for libgloss uses sources from libgloss/arc directory except crtX.S files. Co-authored-by: Shahab Vahedi <list@vahedi.org> Co-authored-by: Claudiu Zissulescu <claziss@gmail.com> Co-authored-by: Bruno Mauricio <brunoasmauricio@gmail.com> Co-authored-by: Luis Silva <luis.m.silva99@hotmail.com> Signed-off-by: Yuriy Kolerov <ykolerov@synopsys.com>
2024-08-21Update config.sub to GCC master branch versionYuriy Kolerov1-28/+53
New config.sub contains support of Synopsys ARCv3 targets. It's necessary for further porting Newlib for ARCv3. config.guess has not been updated yet in GCC. Signed-off-by: Yuriy Kolerov <ykolerov@synopsys.com>
2024-08-21Use ldflags instead of LDFLAGS in newlib.expClaudiu Zissulescu1-2/+2
This variable was accidentally renamed earlier. It must be ldflags according to DejaGNU documentation. Signed-off-by: Claudiu Zissulescu <claziss@gmail.com>
2024-08-20Add new version of Synopsys license.Jeff Johnston1-0/+14
2024-08-20arc: libgloss: Prepare for porting to ARCv3Yuriy Kolerov4-0/+38
There are 3 families of Synopsys DeisgnWare ARC processors: ARCompact/ARCv1 (32-bit), ARCv2 (32-bit) and ARCv3 (32-bit and 64-bit targets). Upstream Newlib supports only ARCv1/2. This commit prepares ARCv1/2 libgloss port to be reused by ARCv3 port (except crt* files). Note that __ARC64__ macro stands for all ARCv3 targets. Signed-off-by: Yuriy Kolerov <ykolerov@synopsys.com>
2024-08-20arc: libgloss: Use exit code in _exit_halt for nSIMYuriy Kolerov1-2/+2
nSIM simulator supports exit codes. However, it's necessary to pass an exit code to _exit_halt, otherwise it's undefined. Signed-off-by: Yuriy Kolerov <ykolerov@synopsys.com>
2024-08-20arc: libgloss: Accommodate MetaWare's standard symbol namesAlexey Brodkin8-25/+105
It makes it usable with standard symbol names defined in default linker scripts of the MetaWare toolchain. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2024-08-20arc: Remove @ from symbol references in assemblyAlexey Brodkin4-42/+42
There's no semantic change, it's only to make the same code compilable with MetaWare toolchian, which actually assumes @x as a full name, not omitting @. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2024-08-20arc: Use __ARC_UNALIGNED__ compiler macroClaudiu Zissulescu1-1/+17
Replace __ARC_ALIGNED_ACCESS__ macro with the compiler defined macro __ARC_UNALIGNED__ and improve file comments. Signed-off-by: Claudiu Zissulescu <claziss@gmail.com>
2024-08-20arc: libgloss: Clean MetaWare hostlink documentationYuriy Kolerov1-67/+67
Signed-off-by: Yuriy Kolerov <ykolerov@synopsys.com>
2024-08-20arc: libgloss: Switch from .balign to .alignAlexey Brodkin1-1/+1
.align is supported by both GCC & MetaWare compiler for ARC, yet implements the same semantics as .balign which only works with GCC. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2024-08-20arc: libgloss: Fix define guard in nsim-syscall.hYuriy Kolerov1-3/+3
Signed-off-by: Yuriy Kolerov <ykolerov@synopsys.com>
2024-08-20Fix glob() functionJordi Sanfeliu2-5/+9
Fixed glob() function to return GLOB_NOMATCH if pattern does not match any existing pathname (and GLOB_NOCHECK was not set in flags).
2024-08-19newlib/libc/include/sys/tree.h: Add deprecation warningJoel Sherrill1-0/+4