Commit Graph

20246 Commits

Author SHA1 Message Date
Mike Frysinger 580817ec01 libgloss: update Makefile regen rules for merged arches
For arches that had their configure merged into the top-level, make
sure they don't still depend on a subdir configure script that no
longer exists.  I had cleaned this up for some of the subdirs, but
these got lost in the shuffle.
2022-01-29 00:10:59 -05:00
Jeff Law 063d67faf0 Finish this commit by prefixing HAVE_INITFINI_ARRAY and HAVE_INIT_FINI references in libgloss in the same way.
Author: Mike Frysinger <vapier@gentoo.org>
Date:   Mon Jan 17 22:20:20 2022 -0500

    newlib: internalize HAVE_INITFINI_ARRAY

    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-28 21:39:14 -07:00
Mike Frysinger 7a4bef590b newlib: hoist crt0 install up another dir
Commit dd23de27c8 ("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-28 07:27:19 -05:00
Mike Frysinger 9d33524164 libgloss: aarch64/sparc: fix missing dir with parallel install
Depending on the processing order of rules when installing in parallel,
install-board might run first and the target dirs don't yet exist.
2022-01-28 06:21:41 -05:00
Mike Frysinger c6c414fcb3 libgloss: bfin: fix missing dir with parallel install
Depending on the processing order of rules when installing in parallel,
install-board might run first and the target dirs don't yet exist.
2022-01-28 05:57:37 -05:00
Corinna Vinschen 047eaf9a6b Cygwin: drop autoloading kernel32 symbols available since Windows 7
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2022-01-28 10:36:54 +01:00
Dimitar Dimitrov b095628ecf libgloss: Fix PRU & Blackfin mkinstalldirs path
With the move of configure scripts out of target directories, relative
paths to top_srcdir got broken:

  /bin/sh: .../newlib/libgloss/../../mkinstalldirs: No such file or directory

Fix the PRU build by switching to srcroot relative path, as rest of targets do.

Fix the Blackfin build in the same way.

Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
2022-01-27 19:40:10 -05:00
Mike Frysinger dcbff9eea7 newlib: merge iconvdata into top-level Makefile
Avoid a recursive make with this tiny subdir to speed things up a bit.
2022-01-27 19:14:57 -05:00
Mike Frysinger 996a85ba4c newlib: drop unused saber file
I can't find any references to this, and it looks like a generated
build log from a specific old sparc system.
2022-01-27 19:14:21 -05:00
Corinna Vinschen d079ab4d37 Revert "Cygwin: fix permission problem when writing DAC info on Samba shares"
This reverts commit 0390cc8572.

There's no indication what exact situation this patch was supposed to
solve, and local testing doesn't show any such problems.  However, this
patch itself introduced a new problem, as outlined by
https://cygwin.com/pipermail/cygwin/2022-January/250629.html

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2022-01-27 15:31:25 +01:00
Mike Frysinger 866de704f3 newlib: fix info+man page builds
The work to merge libc/machine/ up a dir lost the stub doc targets.
So when libc/ recursed into machine/, it would stop going deeper as
the doc rules were empty.  But now that libc/ goes directly into the
libc/machine/$arch/ and those have never had doc stubs, the build
fails.  Add a quick hack to the top dir to ignore all machine/$arch/
dirs when generating docs.  A follow up series will delete all of
this code as it merges all the doc rules into the top newlib dir.
2022-01-26 21:41:47 -05:00
Cyril Yared 73d515fcfe Fix null-pointer dereference in nano-malloc
If p is NULL, then the free_list is empty and we should return the
correct failure values.
2022-01-26 13:14:03 +01:00
Mike Frysinger 43ab30fbd5 libgloss: merge stub iq2000 configure scripts up a level
This was supposed to be included in the previous commit.
2022-01-26 04:42:09 -05:00
Mike Frysinger 754f8def0d libgloss: merge stub arch configure scripts up a level
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-26 04:32:54 -05:00
Mike Frysinger c0bf2d68f9 libgloss: iq2000: drop unused configure vars
This will make it easier to merge up as it won't have unique settings.
2022-01-26 04:27:50 -05:00
Mike Frysinger ee3ed2b65e newlib: switch to multilib.am
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-26 04:17:34 -05:00
Mike Frysinger 08a55a233d newlib: libc: merge machine/ configure scripts up a level
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-26 03:11:21 -05:00
Mike Frysinger 8bee45444f newlib: libc: merge most sys/ configure scripts up a level
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-26 03:11:21 -05:00
Mike Frysinger dd23de27c8 newlib: libc: install CRT0 straight out of subdir
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-26 03:11:21 -05:00
Mike Frysinger fbfeebc221 newlib: libc: merge sys/ trampoline up a level
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-26 03:11:20 -05:00
Mike Frysinger db2ef77287 newlib: libc: merge machine/ trampoline up a level
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-26 03:11:20 -05:00
Mike Frysinger 2339979934 newlib: libm: merge machine/ configure scripts up a level
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-26 03:11:20 -05:00
Mike Frysinger 6ac043b192 newlib: libm: merge machine/ trampoline up a level
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-26 03:11:20 -05:00
Mike Frysinger 6d8c4e4ba1 libgloss: define default target_makefile_frag in top-level
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-25 21:56:47 -05:00
Mike Frysinger 5420733ef3 newlib: libm: drop unused config.h.in file
Not sure how this snuck in.  It's never been used in libm/, so punt it.
2022-01-25 21:56:47 -05:00
Corinna Vinschen f467a1da58 Cygwin: ACLs: don't set indicator for default ACEs prematurely
Commit a2bfe7cae6 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: a2bfe7cae6 ("Cygwin: ACLs: ignore *_INHERIT flags in file ACLs")
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2022-01-25 19:53:40 +01:00
Mike Frysinger 5dc4e2089a newlib: powerpc: move libc machine list to Makefile
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-23 22:35:21 -05:00
Mike Frysinger 2e9aa5f56c newlib: update preprocessor configure checks
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-23 22:35:21 -05:00
Mike Frysinger dfa088ab66 libgloss: bfin: fix subdir install for sim files
When building in parallel, make sure the subdir for the sim files
exist before trying to install into them.
2022-01-23 21:08:07 -05:00
Mike Frysinger dcb25665be newlib: punt unused LIBC_EXTRA_LIB settings
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-21 17:29:46 -05:00
Mike Frysinger 8776d090f8 newlib: stop making .def generation conditional
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-21 17:28:54 -05:00
Mike Frysinger 4af3551136 newlib: drop redundant CFLAGS export
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-21 17:27:55 -05:00
Mike Frysinger f159663b08 newlib: stop clobbering LDFLAGS with non-standard $ldflags
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-21 17:10:10 -05:00
Mike Frysinger 4317e0676a newlib: stop checking --enable-multilib in subdirs
None of the subdirs actually use the multilib arg, so include the
logic only in the top-level configure.
2022-01-21 17:10:10 -05:00
Mike Frysinger 17c2b857dc newlib: move to ../config/multi.m4 for multilib logic
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-21 17:10:09 -05:00
Mike Frysinger 5cc72ac79d newlib: punt unused template file
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-21 07:18:25 -05:00
Mike Frysinger 55e09d5e8c newlib: switch to autoconf long double macro
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-21 07:07:15 -05:00
Mike Frysinger 0a67325726 newlib: switch newlib.h to autoheader
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-19 19:59:16 -05:00
Mike Frysinger b86dc2dab4 newlib: iconv: autogenerate iconv define list
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-19 19:59:16 -05:00
Mike Frysinger 15c091ad73 newlib: add missing _NANO_MALLOC to newlib.hin
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-19 19:59:16 -05:00
Mike Frysinger 21fb1b461c newlib: move version defines out of the config headers
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-19 19:59:16 -05:00
Mike Frysinger 850e08fedb newlib: sort newlib.h output
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-19 19:59:16 -05:00
Mike Frysinger 810c5e5979 newlib: clean up autoheader templates
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-19 19:59:16 -05:00
Mike Frysinger ff5be4ab83 newlib: merge acconfig.h changes into newlib.hin
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-19 19:59:16 -05:00
Mike Frysinger 437c5c5085 newlib: internalize HAVE_INITFINI_ARRAY
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-19 19:59:16 -05:00
Mike Frysinger 6783cceb0a newlib: libm: switch to autoconf long double macro
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-19 18:51:04 -05:00
Jon Turney 0f29c6fc3c
Cygwin: silence xsltproc when writing manpages
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-19 17:14:48 +00:00
Jon Turney 2ede7d11e1
Cygwin: silence xsltproc when writing chunked html
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-19 17:14:36 +00:00
Jon Turney c344628a69
Cygwin: silence dblatex when building PDFs
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-19 17:14:19 +00:00
Jon Turney 9c546e0fd2
Cygwin: silence most custom build rules 2022-01-19 17:13:44 +00:00