aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2022-01-26libgloss: merge stub arch configure scripts up a levelMike Frysinger124-136205/+243
For about half the ports, we don't need a subdir configure script. They're using the config/default.m[ht] rules, and they aren't doing any unique configure tests, so they exist just to pass top-level settings down to create the arch Makefile. We can just as easily do that from the top-level Mkaefile directly and skip configure. Most of the remaining configure scripts could be migrated up to the top-level too, but that would require care in each subdir. So let's be lazy and put that off to another day.
2022-01-26libgloss: iq2000: drop unused configure varsMike Frysinger2-18/+0
This will make it easier to merge up as it won't have unique settings.
2022-01-26newlib: switch to multilib.amMike Frysinger2-74/+53
We use the common config-ml.in for configure, so switch the makefile over to the common multilib.am. It's almost exactly the same code, but there are two differences: * Common code hooks install-exec-local for install-multi, but newlib doesn't currently install any executables, so that doesn't fire. Newlib already has install-data-local that inlined install-multi, so switch that to the common install-multi. * Common code doesn't provide a check-multi at all. Keep ours for now. Some day common code might get it. Or not. Who knows.
2022-01-26newlib: libc: merge machine/ configure scripts up a levelMike Frysinger355-380098/+6795
The machine configure scripts are all effectively stub scripts that pass the higher level options to its own makefile. There were only three doing custom tests. The rest were all effectively the same as the libc/ configure script. So instead of recursively running configure in all of these subdirs, generate their makefiles from the top-level configure. For the few unique ones, deploy a pattern of including subdir logic via m4: m4_include([machine/nds32/acinclude.m4]) Some of the generated machine makefiles have a bunch of extra stuff added to them, but that's because they were inconsistent in their configure libtool calls. The top-level has it, so it exports some new vars to the ones that weren't already.
2022-01-26newlib: libc: merge most sys/ configure scripts up a levelMike Frysinger132-159285/+2726
The sys configure scripts are almost all effectively stub scripts that pass the higher level options to its own makefile. The phoenix & linux ones are a bit more complicated with nested subdirs, so those have been left alone for now. Plus, I don't really have a way of testing them.
2022-01-26newlib: libc: install CRT0 straight out of subdirMike Frysinger6-491/+10
There's no need to have a sys/ subdir just to copy the sys/$arch/crt0.o up to sys/crt0.o, and then have libc/ copy sys/crt0.o up again. Just have libc/ refer to sys/$arch/crt0.o directly and drop the intermediate makefile entirely.
2022-01-26newlib: libc: merge sys/ trampoline up a levelMike Frysinger32-16005/+269
The sys/{configure,Makefile} files exist to fan out to the specific sys/$arch/ subdir, and to possibly generate a crt0. We already have all that same info in the libc/ dir itself, so by moving the recursive configure and make calls into it, we can cut off some of this logic entirely and save the overhead. For arches that don't have a sys subdir, it means they can skip the logic entirely. The sys subdir itself is kept for the crt0 logic, for now. We'll try and clean that up next.
2022-01-26newlib: libc: merge machine/ trampoline up a levelMike Frysinger32-16473/+316
The machine/{configure,Makefile} files exist only to fan out to the specific machine/$arch/ subdir. We already have all that same info in the libc/ dir itself, so by moving the recursive configure and make calls into it, we can cut off this logic entirely and save the overhead. For arches that don't have a machine subdir, it means they can skip the logic entirely. Although there's prob not too many of those.
2022-01-26newlib: libm: merge machine/ configure scripts up a levelMike Frysinger64-87289/+924
The machine configure scripts are all effectively stub scripts that pass the higher level options to its own makefile. The only one doing any custom tests was nds32. The rest were all effectively the same as the libm/ configure script. So instead of recursively running configure in all of these subdirs, generate their makefiles from the top-level configure. For nds32, deploy a pattern of including subdir logic via m4: m4_include([machine/nds32/acinclude.m4]) Even its set of checks are very small -- it does 2 preprocessor tests and sets up 2 makefile conditionals. Some of the generated machine makefiles have a bunch of extra stuff added to them, but that's because they were inconsistent in their configure libtool calls. The top-level has it, so it exports some new vars to the ones that weren't already.
2022-01-26newlib: libm: merge machine/ trampoline up a levelMike Frysinger14-16309/+93
The machine/{configure,Makefile} files exist only to fan out to the specific machine/$arch/ subdir. We already have all that same info in the libm/ dir itself, so by moving the recursive configure and make calls into it, we can cut off this logic entirely and save the overhead. For arches that don't have a machine subdir, it means they can skip the logic entirely.
2022-01-25libgloss: define default target_makefile_frag in top-levelMike Frysinger2-1/+11
A bunch of subdirs want this, so make it available in the common dir to ease future merges. It isn't used directly in libgloss so it should be harmless as-is.
2022-01-25newlib: libm: drop unused config.h.in fileMike Frysinger1-1/+0
Not sure how this snuck in. It's never been used in libm/, so punt it.
2022-01-25Cygwin: ACLs: don't set indicator for default ACEs prematurelyCorinna Vinschen1-2/+0
Commit a2bfe7cae61a introduced a change ignoring default ACEs on files to come up with a valid POSIX ACL, reflecting the Windows ACEs actually making sense on files. However, if CREATOR OWNER or CREATOR GROUP ACEs - both only making sense as default ACEs - are found in the ACL, a value indicating the presence of default ACEs gets set, even on files. This in turn breaks a subsequent integrity check and get_posix_access returns EINVAL. The code path handling default ACEs on directories sets this indicator anyway, so don't set it just because one of the above SIDs are found. Fixes: a2bfe7cae61a ("Cygwin: ACLs: ignore *_INHERIT flags in file ACLs") Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2022-01-23newlib: powerpc: move libc machine list to MakefileMike Frysinger4-21/+101
This makes the makefile logic a bit cleaner so we don't have two files maintaining lists of sources & objects. Since the logic is tied to cpu capabilities, past those boolean settings down from the configure logic to the makefile logic. This will also make it easier to throw away the configure script in a follow up commit and just keep the makefile.
2022-01-23newlib: update preprocessor configure checksMike Frysinger13-434/+1537
The nds32 & spu dirs are using compile tests to look for some preprocessor defines, but we don't need to compile the code, just preprocess it. So switch to AC_PREPROC_IFELSE. The sh dir is using a preprocessor test via grep, but let's switch it to AC_PREPROC_IFELSE too to be consistent. This should allow us to drop the uncommon AC_NO_EXECUTABLES call.
2022-01-23libgloss: bfin: fix subdir install for sim filesMike Frysinger1-0/+1
When building in parallel, make sure the subdir for the sim files exist before trying to install into them.
2022-01-21newlib: punt unused LIBC_EXTRA_LIB settingsMike Frysinger28-142/+21
This was added decades ago, but the commit message lacks any explanation, and it was unused when it was merged. It's still unused today. So punt it all.
2022-01-21newlib: stop making .def generation conditionalMike Frysinger4-53/+28
Generating these files is very cheap, so let's just do it all the time. This makes the build logic simpler, and keeps errors for slipping in in codepaths that are not well tested. Creating these files doesn't mean they'll be included in the manual implicitly. For example, some of the nano stdio files break documentation because they don't have any chew directives in them. But no one noticed since that code path is rarely enabled. So drop the _i and _float def files.
2022-01-21newlib: drop redundant CFLAGS exportMike Frysinger2-4/+0
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-21newlib: stop clobbering LDFLAGS with non-standard $ldflagsMike Frysinger209-583/+53
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-21newlib: stop checking --enable-multilib in subdirsMike Frysinger115-1534/+68
None of the subdirs actually use the multilib arg, so include the logic only in the top-level configure.
2022-01-21newlib: move to ../config/multi.m4 for multilib logicMike Frysinger5-44/+61
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: punt unused template fileMike Frysinger1-1/+0
This was needed by ancient versions of automake, but that hasn't been the case since at least automake-1.5, so punt this unused stub.
2022-01-21newlib: switch to autoconf long double macroMike Frysinger5-101/+84
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-19newlib: switch newlib.h to autoheaderMike Frysinger4-22/+100
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-19newlib: iconv: autogenerate iconv define listMike Frysinger7-28/+1055
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-19newlib: add missing _NANO_MALLOC to newlib.hinMike Frysinger1-0/+3
This was added to configure, but never to the header file. Nothing uses this currently, so it's not a big deal (as all the dynamic logic is via automake conditionals), but might as well restore it now to keep autoheader output in sync.
2022-01-19newlib: move version defines out of the config headersMike Frysinger4-19/+27
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-19newlib: sort newlib.h outputMike Frysinger1-134/+132
Sort the symbols lexically like autoheader does. There are no other changes in here. This will make it easier to sync with autoheader.
2022-01-19newlib: clean up autoheader templatesMike Frysinger3-161/+127
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-19newlib: merge acconfig.h changes into newlib.hinMike Frysinger3-194/+3
The acconfig.h header was used to run autoheader and then manually sync the output into newlib.hin. Based on how the files have fallen out of sync (with newlib.hin having many more templates), this has not been run in a long time, and attempts to do so now would break newlib.hin. Further, if you try to run autoheader now, it will automatically replace _newlib_version.hin since it's the first entry in the call to AC_CONFIG_HEADERS. So let's throw away acconfig.h entirely. It only had 2 slightly better comments, and the rest were either worse, missing, or stale. This has the side benefit of avoiding autoheader warning about the deprecated use of acconfig.h since newer autoconf only wants macro calls in configure.ac.
2022-01-19newlib: internalize HAVE_INITFINI_ARRAYMike Frysinger8-12/+12
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: libm: switch to autoconf long double macroMike Frysinger2-63/+62
Now that we require a recent version of autoconf, we can rely on this macro working. We shift the call in configure.ac down a little to help keep the generated diff minimal -- there should be no functional difference otherwise. This is because the autoconf macros will call a bunch of standard toolchain macros first, and arguably the current code is incorrect in how it does its testing.
2022-01-19Cygwin: silence xsltproc when writing manpagesJon Turney1-3/+5
Unless make is invoked with V=1, have xmlto pass the parameter 'man.output.quietly=1' to xsltproc to suppress "Note: Writing foo.N" output from the manpages stylesheet.
2022-01-19Cygwin: silence xsltproc when writing chunked htmlJon Turney1-3/+5
Unless make is invoked with V=1, have xmlto pass the parameter 'chunk.quietly=1' to xsltproc to suppress "Writing foo.html for sect1(foo)" output from the chunker.xsl stylesheet.
2022-01-19Cygwin: silence dblatex when building PDFsJon Turney1-2/+5
Unless make is invoked with V=1, have xmlto pass '-q' to dblatex when building PDFs, to supress repeated "default template used in programlisting or screen" warnings from dblatex's verbatim.xsl stylesheet.
2022-01-19Cygwin: silence most custom build rulesJon Turney2-38/+38
2022-01-19Cygwin: resolver: cygwin_query() skip response header on internal errorAnton Lavrentiev via Cygwin-patches1-1/+2
- When dn_comp() failed internally there is no longer any need to fill the response header since it's now all cleared upon entry
2022-01-19Cygwin: Fix configure help for --{en,dis}able-doc optionJon Turney1-1/+1
Report '--disable-doc' in 'configure --help', as enable is the default.
2022-01-19Cygwin: add resolver fixes to release messageCorinna Vinschen1-1/+1
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2022-01-19Cygwin: resolver: A few fixes for cygwin_query(), part 2Anton Lavrentiev via Cygwin-patches1-4/+5
Make sure Windows ResultSet is free'd when dn_comp failed internally
2022-01-19Cygwin: resolver: Targets in SRV DNS responses may not be compressedAnton Lavrentiev via Cygwin-patches1-0/+1
RFC2782 clearly says so yet it's a common misconception to perform the compression in the violation of the standard. This patch fixes that
2022-01-19Cygwin: resolver: Fix to match response ID with request IDAnton Lavrentiev via Cygwin-patches2-2/+11
In case when the native OS resolver is used (via os_query) the returned response ID is always 0. It should actually match the ID passed in to res_send() in the DNS request header. This patch fixes that
2022-01-19Cygwin: resolver: A few fixes for cygwin_query()Anton Lavrentiev via Cygwin-patches1-8/+13
- Make sure the answer buffer is properly cleared so there is no trailing garbage when the response does not fit entirely in; - Make sure an internal decomp failure gets reported correctly (w/return code -1); - Make sure that the buffer is not overrun when filling out the header.
2022-01-19Cygwin: resolver: Process options forward (not backwards)Anton Lavrentiev via Cygwin-patches1-4/+6
Also, make sure the debug setting propagates to the parser of the remainder of /etc/resolv.conf
2022-01-18newlib: iconv: sort ccsbi.c contentsMike Frysinger2-94/+94
The current output doesn't happen to match what is produced on my system, so force _iconv_ccs to be sorted like is already done in the ccsbi.h header.
2022-01-18newlib: iconv: sync mkdeps.pl with aliasesbi.c changesMike Frysinger1-3/+3
Some changes were made to aliasesbi.c, but not to this file which dynamically generates it. Add those fixes to this file too.
2022-01-18newlib: drop autoconf-2.59 workaroundMike Frysinger1-127/+0
As the file comments say, this was a backport of an autoconf-2.60 fix, and shouldn't matter for >autoconf-2.59 versions. Drop it since we use and require autoconf-2.69 now.
2022-01-18newlib: enable automake subdir-objects in all dirsMike Frysinger4-107/+141
Currently this is only enabled in the top-level as that's the only place where it seemed to be used. But the libc/sys/phoenix/ dir also uses this functionality, but fails to explicitly enable it. Automake workedaround it, but generated warnings. Move the option to NEWLIB_CONFIGURE so all dirs get it automatically iff they end up using the option. If they don't use the option, there's no difference to the generated code.
2022-01-18newlib: avoid duplicate awk checksMike Frysinger119-361/+36
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.