Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-12-31Changes for newlib 4.4.0 snapshotnewlib-4.4.0Jeff Johnston
- bump up version to 4.4.0
2023-11-28newlib: filter out versions from newlib.h to simplify autoreconfMike Frysinger
We've been manually editing newlib.hin after generating it with autoheader to drop the version defines that we keep in the separate _newlib_version.h header. This is confusing for people, and is an easy source of mistakes/errors. Since we're already running sed on newlib.h during configure to filter out defines we don't want to expose, add the version macros there too. This way we don't have to manually edit newlib.hin. This simplifies the autoreconf step in exchange for a slightly more complicated configure+sed step, but seems worth the trade-off.
2023-08-18newlib: add Xtensa portAlexey Lapshin
2023-05-16Regenerated source for adding non LDBL_EQ_DBLJennifer Averett
2023-01-21Bump up newlib to 4.3.0newlib-4.3.0Jeff Johnston
2023-01-18amdgcn: Add vectorized math routinesKwok Cheung Yeung
This implements a set of vectorized math routines to be used by the compiler auto-vectorizer. Versions for vectors with 2 lanes up to 64 lanes (in powers of 2) are provided. These routines are based on the scalar versions of the math routines in libm/common, libm/math and libm/mathfp. They make extensive use of the GCC C vector extensions and GCN-specific builtins in GCC.
2022-12-16Revert "amdgcn: Add vectorized math routines"Jeff Johnston
This reverts commit 125e39bfea1a39341a60348c93a65cf4894e0f2a.
2022-12-16amdgcn: Add vectorized math routinesKwok Cheung Yeung
This implements a set of vectorized math routines to be used by the compiler auto-vectorizer. Versions for vectors with 2 lanes up to 64 lanes (in powers of 2) are provided. These routines are based on the scalar versions of the math routines in libm/common, libm/math and libm/mathfp. They make extensive use of the GCC C vector extensions and GCN-specific builtins in GCC.
2022-08-23Fix problem with _newlib_version.h not being filled in correctlyJeff Johnston
2022-07-13Add --enable-newlib-reent-thread-local optionMatt Joyce
By default, Newlib uses a huge object of type struct _reent to store thread-specific data. This object is returned by __getreent() if the __DYNAMIC_REENT__ Newlib configuration option is defined. The reentrancy structure contains for example errno and the standard input, output, and error file streams. This means that if an application only uses errno it has a dependency on the file stream support even if it does not use it. This is an issue for lower end targets and applications which need to qualify the software according to safety standards (for example ECSS-E-ST-40C, ECSS-Q-ST-80C, IEC 61508, ISO 26262, DO-178, DO-330, DO-333). If the new _REENT_THREAD_LOCAL configuration option is enabled, then struct _reent is replaced by dedicated thread-local objects for each struct _reent member. The thread-local objects are defined in translation units which use the corresponding object.
2022-06-21Regenerate configure and newlib.hinSebastian Huber
In commit b0cb9f85ca3626e0e68fd451c3090d253ceb4300 the regeneration of the configure and newlib.hin files was missing.
2022-05-18Use global atexit data for all configurationsSebastian Huber
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-05-18Add --enable-newlib-reent-binary-compatSebastian Huber
Add the --enable-newlib-reent-binary-compat configure option. This option is disabled by default. If enabled, then unused members in struct _reent are preserved to maintain the structure layout.
2022-03-29newlib: drop phoenix supportMike Frysinger
This code has not been updated since 2016, and it looks like it has rotted quite a bit since. It does not build against the current set of phoenix sources -- I had to hack both the kernel headers and the newlib headers up to get it to build, and I still have no idea if it actually links or runs. It seems like the project itself has moved away from newlib and to its own C library: https://phoenix-rtos.com/documentation/libc/README.md So since there's no interest from the phoenix folks to maintain this, and it has a significant amount of non-standard code that we try to keep up-to-date (without actually testing it), just punt it all.
2022-03-18newlib: enable automatic dependency generationMike Frysinger
This was disabled as part of the migration away from the cygnus option as that implied no-dependencies. We currently have 1-to-1 updates enabled -- if you touch a .c file, the corresponding .o file will be rebuilt. But if you touch a header file, none of the files using that get rebuilt.
2022-03-17newlib: libc: merge build up a directoryMike Frysinger
Convert all the libc/ subdir makes into the top-level Makefile. This allows us to build all of libc from the top Makefile without using any recursive make calls. This is faster and avoids the funky lib.a logic where we unpack subdir archives to repack into a single libc.a. The machine override logic is maintained though by way of Makefile include ordering, and source file accumulation in libc_a_SOURCES. There's a few dummy.c files that are no longer necessary since we aren't doing the lib.a accumulating, so punt them. The winsup code has been pulling the internal newlib ssp library out, but that doesn't exist anymore, so change that to pull the objects.
2022-03-02newlib: drop redundant AM_MAINTAINER_MODE callMike Frysinger
This is already called earlier in this file, so no need to do it again.
2022-02-25newlib: libc: move configure into top-levelMike Frysinger
This kills off the last configure script under libc/ and folds it into the top newlib configure script. The a lot of the logic was already in the top configure script, so move what's left into a libc/acinclude.m4 file.
2022-02-18newlib: libm: merge build up a directoryMike Frysinger
Convert all the libm/ subdir makes into the top-level Makefile. This allows us to build all of libm from the top Makefile without using any recursive make calls. This is faster and avoids the funky lib.a logic where we unpack subdir archives to repack into a single libm.a. The machine override logic is maintained though by way of Makefile include ordering, and source file accumulation in libm_a_SOURCES. One thing to note is that this will require GNU Make because of: libm_a_CFLAGS = ... $(libm_a_CFLAGS_$(subst /,_,$(@D))) This was the only way I could find to supporting per-dir compiler settings, and I couldn't find a POSIX compatible way of transforming the variable content. I don't think this is a big deal as other Makefiles in the tree are using GNU Make-specific syntax, but I call this out as it's the only one so far in the new automake code that I've been writing. Automake doesn't provide precise control over the output object names (by design). This is fine by default as we get consistent names in all the subdirs: libm_a-<source>.o. But this relies on using the same set of compiler flags for all objects. We currently compile libm/common/ with different optimizations than the rest. If we want to compile objects differently, we can create an intermediate archive with the subset of objects with unique flags, and then add those objects to the main archive. But Automake will use a different prefix for the objects, and thus we can't rely on ordering to override. But if we leverage $@, we can turn Automake's CFLAGS into a multiplex on a per-dir (and even per-file if we wanted) basis. Unfortunately, since $@ contains /, Automake complains it's an invalid name. While GNU Make supports this, it's a POSIX extension, so Automake flags it. Using $(subst) avoids the Automake warning to get a POSIX compliant name, albeit with a GNU Make extension.
2022-02-10newlib: libm: fix rebase conflictsMike Frysinger
I missed this cleanup when rebasing on top of the latest branch.
2022-02-10newlib: libm: move configure into top-levelMike Frysinger
This kills off the last configure script under libm/ and folds it into the top newlib configure script. The vast majority of logic was already in the top configure script, so move the little that is left into a libm/acinclude.m4 file.
2022-02-10newlib: drop support for $oextMike Frysinger
This was needed only to support libtool in case objects ended in .lo instead of .o, but we dropped libtool, so drop this too.
2022-02-10newlib: drop support for $aextMike Frysinger
This was needed only to support libtool in case the library ended in .la instead of .a, but we dropped libtool, so drop this too.
2022-02-10newlib: drop libtool supportMike Frysinger
This was only ever used for i?86-pc-linux-gnu targets, but that's been broken for years, and has since been dropped. So clean this up too. This also deletes the funky objectlist logic since it only existed for the libtool libraries. Since it was the only thing left in the small Makefile.shared file, we can punt that too.
2022-02-10newlib: drop unused iconvdataMike Frysinger
This was only ever used for i?86-pc-linux-gnu targets, but that's been broken for years, and has since been dropped. So clean this up too.
2022-02-10newlib: drop i?86-pc-linux-* target supportMike Frysinger
This was added 20+ years ago. It seems to have very few (or no users) as it only works on 32-bit x86 GNU/Linux (i.e. glibc) systems, and even then only with old versions of glibc. It hasn't compiled in at least 5 years, but most likely been broken for more like 15 years -- it relies on internal glibc APIs (like linuxthreads), and that code has changed and been deleted significantly since. This single target ends up dragging in a lot of non-trivial code that is hard to keep working, and currently impossible to verify -- the libtool and iconvdata and sys/linux/ code isn't used by anything else, but ends up touching just about every build file in the tree. Punt the target so we can start stripping out all these unique code paths. This commit by itself just disables the target. We'll start deleting the individual unused pieces in followups.
2022-02-09newlib: drop autoconf-2.13 hackMike Frysinger
We require autoconf-2.69 now, so we don't need this old install hack.
2022-02-09newlib: drop cygnus EXEEXT hackMike Frysinger
Now that we rely on AC_NO_EXECUTABLES to disable link tests, we don't need this hack to disable exeext probing.
2022-02-09newlib: switch to AM_PROG_ARMike Frysinger
Now that we require automake-1.15, we can use this macro rather than do the tool search ourselves.
2022-02-09newlib: switch to standard AM_PROG_ASMike Frysinger
Now that we require a recent automake version, rely on it to provide AS and CCAS and CCASFLAGS for us.
2022-02-09newlib: switch to standard AC_PROG_CCMike Frysinger
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-09newlib: move AC_NO_EXECUTABLES logic up to common codeMike Frysinger
This logic was added to libc & libm to get it working again after some reworks in the CPP handling, but now that that's settled, let's move this to the common newlib configure logic. This will make it easier to consolidate all the configure calls into the top-level newlib dir. This does create a lot of noise in the generate scripts, but that's because of the ordering of the calls, not because of correctness. We will try to draw that back down in follow up commits as we modernize the toolchain calls in here.
2022-02-02newlib: rename libc_cv_ prefix to newlib_cv_Mike Frysinger
We've been using both libc_cv_ and newlib_cv_ for our cache vars. Let's consolidate on newlib_cv_ to avoid conflicts with glibc which is already using the libc_cv_ prefix.
2022-02-02newlib: drop unused cache vars from MakefilesMike Frysinger
These aren't used in any of the makefiles, so there's no point in exporting these. These are only checked in the configure script.
2022-02-02newlib: delete unused iconvdata subdir configMike Frysinger
Since commit dcbff9eea71d06454e7d55d6b7e72672c0987d6d ("newlib: merge iconvdata into top-level Makefile"), there is no configure script in the iconvdata/ subdir, so this call will just issue a warning and not do anything useful. Punt it.
2022-01-29newlib: export abs_newlib_basedir for all subdirsMike Frysinger
When using the top-level configure script but subdir Makefiles, the newlib_basedir value gets a bit out of sync: it's relative to where configure lives, not where the Makefile lives. Move the abs setting from the top-level configure script into acinclude.m4 so we can rely on it being available everywhere. Although this commit doesn't use it anywhere, just lays the groundwork.
2022-01-28newlib: hoist crt0 install up another dirMike Frysinger
Commit dd23de27c8e45513ad276f503a0036c3bc4e487b ("newlib: libc: install CRT0 straight out of subdir") got rid of the libc/sys/ intermediate for copying the file up, but the top-level newlib/ dir was still expecting a libc/crt0.o to exist so it could install. Update that to also look for the crt0 file directly under libc/ like we already do for crt1.
2022-01-28newlib: merge iconvdata into top-level MakefileMike Frysinger
Avoid a recursive make with this tiny subdir to speed things up a bit.
2022-01-22newlib: drop redundant CFLAGS exportMike Frysinger
This is already handled by autotools for us automatically. You can tell as the generated output is exactly the same other than deleting a few blank lines.
2022-01-22newlib: stop clobbering LDFLAGS with non-standard $ldflagsMike Frysinger
It's unclear why this was added originally, but assuming it was needed 20 years ago, it shouldn't be explicitly required nowadays. Current versions of autotools already take care of exporting LDFLAGS to the Makefile as needed (things are actually getting linked). That's why the configure diffs show LDFLAGS still here, but shifted to a diff place in the output list. A few dirs stop exporting LDFLAGS, but that's because they don't do any linking, only compiling, so it's correct. As for the use of $ldflags instead of the standard $LDFLAGS, I can't really explain that at all. Just use the right name so users don't have to dig into why their setting isn't respected, and then use a non-standard name instead. Adjust the testsuite to match.
2022-01-22newlib: stop checking --enable-multilib in subdirsMike Frysinger
None of the subdirs actually use the multilib arg, so include the logic only in the top-level configure.
2022-01-22newlib: move to ../config/multi.m4 for multilib logicMike Frysinger
The current newlib multilib logic is almost exactly the same as the config/multi.m4, and the differences should be minor, so switch over to that to delete custom logic on ourside.
2022-01-21newlib: switch to autoconf long double macroMike Frysinger
Now that we require a recent version of autoconf, we can rely on this macro working. This change was already made to libm, but these other dirs were missed as I didn't notice it being duplicated in 3 places.
2022-01-20newlib: switch newlib.h to autoheaderMike Frysinger
Now that newlib.hin has been brought up to date and all of its defines are produced by configure, we can switch it to using autoheader without manual editing. This relies on a few pieces: * Moving the header & footer into configure.ac via AH_TOP & AH_BOTTOM. * Running a post-process step on newlib.h to delete all the defines we didn't export ourselves. Basically, anything without a _ prefix. This will leave behind some spurious comments in newlib.h related to the defines we filtered out, but should be harmless, so it's probably not worth the effort to construct a more complicated sed expression to also strip those out.
2022-01-20newlib: iconv: autogenerate iconv define listMike Frysinger
The list of iconv to/from defines is hand maintained in newlib.hin. Lets leverage mkdeps.pl to generate this list automatically from the list of known encodings. The newlib.hin list is up-to-date, so the list in iconv.m4 matches the list already generated.
2022-01-20newlib: move version defines out of the config headersMike Frysinger
This will make it easier to move newlib.h to use autoheader directly. We only want the newlib version defines in our hand curated version file, _newlib_version.h, not in the template header, newlib.h, so using AC_DEFINE doesn't make much sense.
2022-01-20newlib: clean up autoheader templatesMike Frysinger
Sync these back from newlib.hin to configure.ac, and touchup some of the forms to be consistent (like being full sentences). Also use the AC_DEFINE-vs-AC_DEFINE_UNQUOTED macros correctly. This will make it easier to re-enable autoheader for managing newlib.hin.
2022-01-20newlib: internalize HAVE_INITFINI_ARRAYMike Frysinger
This define is only used by newlib internally, so stop exporting it as HAVE_INITFINI_ARRAY since this can conflict with defines packages use themselves. We don't really need to add _ to HAVE_INIT_FINI too since it isn't exported in newlib.h, but might as well be consistent here. We can't (easily) add this to newlib_cflags like HAVE_INIT_FINI is because this is based on a compile-time test in the top configure, not on plain shell code in configure.host. We'd have to replicate the test in every subdir in order to have it passed down.
2022-01-19newlib: avoid duplicate awk checksMike Frysinger
Since AM_INIT_AUTOMAKE calls AC_PROG_AWK, and some configure.ac scripts call it too, we end up testing for awk multiple times. If we change NEWLIB_CONFIGURE to require the macro instead, then it makes sure it's always expanded, but only once. While we're here, do the same thing with AC_PROG_INSTALL since it is also called by AM_INIT_AUTOMAKE, although it doesn't currently result in duplicate configure checks.
2022-01-19newlib: merge old AC_LIBTOOL_WIN32_DLL macro into LT_INITMike Frysinger
The AC_LIBTOOL_WIN32_DLL macro has been deprecated for a while and code should call LT_INIT with win32-dll instead. Update the calls to match. The generated code is noisy not because of substantial differences, but because the order of some macros change (i.e. instead of calling AS and then CC, CC is called first and then AS).