25 Commits

Author SHA1 Message Date
Adolf Belka
9f2c7dda09 make: Update to version 4.4.1
- Update from version 4.4 to 4.4.1
- Update of rootfile not required
- Changelog
Version 4.4.1 (26 Feb 2023)
	This release is primarily a bug-fix release.
	A complete list of bugs fixed in this version is available here:
	https://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=110&set=custom
	* WARNING: Backward-incompatibility!
	  In previous releases it was not well-defined when updates to MAKEFLAGS made
	  inside a makefile would be visible.  This release ensures they are visible
	  immediately, even when invoking $(shell ...) functions.  Also, command line
	  variable assignments are now always present in MAKEFLAGS, even when parsing
	  makefiles.
	  Implementation provided by Dmitry Goncharov <dgoncharov@users.sf.net>
	* New feature: Parallel builds of archives
	  Previously it was not possible to use parallel builds with archives.  It is
	  still not possible using the built-in rules, however you can now override
	  the built-in rules with a slightly different set of rules and use parallel
	  builds with archive creation.  See the "Dangers When Using Archives" section
	  of the GNU Make manual, and https://savannah.gnu.org/bugs/index.php?14927
	* Previously target-specific variables would inherit their "export" capability
	  from parent target-specific variables even if they were marked private.  Now
	  private parent target-specific variables have no affect.  For more details
	  see https://savannah.gnu.org/bugs/index.php?61463
	* Disable FIFO jobserver on GNU/Hurd and Cygwin
	  Experimentation shows that the new FIFO-based jobserver doesn't work well on
	  GNU/Hurd or Cygwin: revert these systems to use the pipe-based jobserver.
	* Updates to allow building on OS/2
	  Provided by KO Myung-Hun <komh78@gmail.com>
	* New platform: GNU Make is supported on z/OS
	  Thanks to Igor Todorovski <itodorov@ca.ibm.com> for the patches and testing
	  assistance.

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
2023-03-05 15:14:51 +00:00
Adolf Belka
e7a72e5863 make: Update to version 4.4
- Update from version 4.3 to 4.4
- Update of rootfile
- the $(MAKETUNING) option does not work with the elinks build with version 4.4 A linked
   patch has been created for the removal of that option from the elinks lfs file.
- Changelog
Version 4.4 (31 Oct 2022)
A complete list of bugs fixed in this version is available here:
https://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=109&set=custom
* WARNING: Deprecation!
  The following systems are deprecated in this release:
    - OS/2 (EMX)
    - AmigaOS
    - Xenix
    - Cray
  In the NEXT release of GNU Make, support for these systems will be removed.
  If you want to see them continue to be supported, contact <bug-make@gnu.org>.
* WARNING: Future backward-incompatibility!
  In the NEXT release of GNU Make, pattern rules will implement the same
  behavior change for multiple targets as explicit grouped targets, below: if
  any target of the rule is needed by the build, the recipe will be invoked if
  any target of the rule is missing or out of date.  During testing some
  makefiles were found to contain pattern rules that do not build all targets;
  this can cause issues so we are delaying this change for one release cycle
  to allow these makefiles to be updated.  GNU Make shows a warning if it
  detects this situation: "pattern recipe did not update peer target".
* WARNING: Backward-incompatibility!
  GNU Make now uses temporary files in more situations than previous releases.
  If your build system sets TMPDIR (or TMP or TEMP on Windows) and deletes the
  contents during the build, or uses restrictive permissions, this may cause
  problems.  You can choose an alternative temporary directory only for use by
  GNU Make by setting the new MAKE_TMPDIR environment variable before invoking
  make.  Note that this value CANNOT be set inside the makefile, since make
  needs to find its temporary directory before the makefiles are parsed.
* WARNING: Backward-incompatibility!
  Previously each target in a explicit grouped target rule was considered
  individually: if the targets needed by the build were not out of date the
  recipe was not run even if other targets in the group were out of date.  Now
  if any of the grouped targets are needed by the build, then if any of the
  grouped targets are out of date the recipe is run and all targets in the
  group are considered updated.
* WARNING: Backward-incompatibility!
  Previously if --no-print-directory was seen anywhere in the environment or
  command line it would take precedence over any --print-directory.  Now, the
  last setting of directory printing options seen will be used, so a command
  line such as "--no-print-directory -w" _will_ show directory entry/exits.
* WARNING: Backward-incompatibility!
  Previously the order in which makefiles were remade was not explicitly
  stated, but it was (roughly) the inverse of the order in which they were
  processed by make.  In this release, the order in which makefiles are
  rebuilt is the same order in which make processed them, and this is defined
  to be true in the GNU Make manual.
* WARNING: Backward-incompatibility!
  Previously only simple (one-letter) options were added to the MAKEFLAGS
  variable that was visible while parsing makefiles.  Now, all options are
  available in MAKEFLAGS.  If you want to check MAKEFLAGS for a one-letter
  option, expanding "$(firstword -$(MAKEFLAGS))" is a reliable way to return
  the set of one-letter options which can be examined via findstring, etc.
* WARNING: Backward-incompatibility!
  Previously makefile variables marked as export were not exported to commands
  started by the $(shell ...) function.  Now, all exported variables are
  exported to $(shell ...).  If this leads to recursion during expansion, then
  for backward-compatibility the value from the original environment is used.
  To detect this change search for 'shell-export' in the .FEATURES variable.
* WARNING: New build requirement
  GNU Make utilizes facilities from GNU Gnulib: Gnulib requires certain C99
  features in the C compiler and so these features are required by GNU Make:
  https://www.gnu.org/software/gnulib/manual/html_node/C99-features-assumed.html
  The configure script should verify the compiler has these features.
* New feature: The .WAIT special target
  If the .WAIT target appears between two prerequisites of a target, then
  GNU Make will wait for all of the targets to the left of .WAIT in the list
  to complete before starting any of the targets to the right of .WAIT.
  This feature is available in some other versions of make, and it will be
  required by an upcoming version of the POSIX standard for make.
  Different patches were made by Alexey Neyman <alex.neyman@auriga.ru> (2005)
  and Steffen Nurpmeso <steffen@sdaoden.eu> (2020) that were useful but the
  result is a different implementation (closer to Alexey's idea).
* New feature: .NOTPARALLEL accepts prerequisites
  If the .NOTPARALLEL special target has prerequisites then all prerequisites
  of those targets will be run serially (as if .WAIT was specified between
  each prerequisite).
* New feature: The .NOTINTERMEDIATE special target
  .NOTINTERMEDIATE disables intermediate behavior for specific files, for all
  files built using a pattern, or for the entire makefile.
  Implementation provided by Dmitry Goncharov <dgoncharov@users.sf.net>
* New feature: The $(let ...) function
  This function allows user-defined functions to define a set of local
  variables: values can be assigned to these variables from within the
  user-defined function and they will not impact global variable assignments.
  Implementation provided by Jouke Witteveen <j.witteveen@gmail.com>
* New feature: The $(intcmp ...) function
  This function allows conditional evaluation controlled by a numerical
  comparison.
  Implementation provided by Jouke Witteveen <j.witteveen@gmail.com>
* New feature: Improved support for -l / --load-average
  On systems that provide /proc/loadavg (Linux), GNU Make will use it to
  determine the number of runnable jobs and use this as the current load,
  avoiding the need for heuristics.
  Implementation provided by Sven C. Dack <sdack@gmx.com>
* New feature: The --shuffle command line option
  This option reorders goals and prerequisites to simulate non-determinism
  that may be seen using parallel build.  Shuffle mode allows a form of "fuzz
  testing" of parallel builds to verify that all prerequisites are correctly
  described in the makefile.
  Implementation provided by Sergei Trofimovich <siarheit@google.com>
* New feature: The --jobserver-style command line option and named pipes
  A new jobserver method is used on systems where mkfifo(3) is supported.
  This solves a number of obscure issues related to using the jobserver
  and recursive invocations of GNU Make.  This change means that sub-makes
  will connect to the jobserver even if they are not marked as recursive.
  It also means that other tools that want to participate in the jobserver
  will need to be enhanced as described in the GNU Make manual.
  You can force GNU Make to use the simple pipe-based jobserver (perhaps if
  you are integrating with other tools or older versions of GNU Make) by
  adding the '--jobserver-style=pipe' option to the command line of the
  top-level invocation of GNU Make, or via MAKEFLAGS or GNUMAKEFLAGS.
  To detect this change search for 'jobserver-fifo' in the .FEATURES variable.
* Some POSIX systems (*BSD) do not allow locks to be taken on pipes, which
  caused the output sync feature to not work properly there.  Also multiple
  invocations of make redirecting to the same output file (e.g., /dev/null)
  would cause hangs.  Instead of locking stdout (which does have some useful
  performance characteristics, but is not portable) create a temporary file
  and lock that.  Windows continues to use a mutex as before.
* GNU Make has sometimes chosen unexpected, and sub-optimal, chains of
  implicit rules due to the definition of "ought to exist" in the implicit
  rule search algorithm, which considered any prerequisite mentioned in the
  makefile as "ought to exist".  This algorithm has been modified to prefer
  prerequisites mentioned explicitly in the target being built and only if
  that results in no matching rule, will GNU Make consider prerequisites
  mentioned in other targets as "ought to exist".
  Implementation provided by Dmitry Goncharov <dgoncharov@users.sf.net>
* GNU Make was performing secondary expansion of all targets, even targets
  which didn't need to be considered during the build.  In this release
  only targets which are considered will be secondarily expanded.
  Implementation provided by Dmitry Goncharov <dgoncharov@users.sf.net>
* If the MAKEFLAGS variable is modified in a makefile, it will be re-parsed
  immediately rather than after all makefiles have been read.  Note that
  although all options are parsed immediately, some special effects won't
  appear until after all makefiles are read.
* The -I option accepts an argument "-" (e.g., "-I-") which means "reset the
  list of search directories to empty".  Among other things this can be used
  to prevent GNU Make from searching in its default list of directories.
* New debug option "print" will show the recipe to be run, even when silent
  mode is set, and new debug option "why" will show why a target is rebuilt
  (which prerequisites caused the target to be considered out of date).
  Implementation provided by David Boyce <David.S.Boyce@gmail.com>
* The existing --trace option is made equivalent to --debug=print,why
* Target-specific variables can now be marked "unexport".
* Exporting / unexporting target-specific variables is handled correctly, so
  that the attribute of the most specific variable setting is used.
* Special targets like .POSIX are detected upon definition, ensuring that any
  change in behavior takes effect immediately, before the next line is parsed.
* When the pipe-based jobserver is enabled and GNU Make decides it is invoking
  a non-make sub-process and closes the jobserver pipes, it will now add a new
  option to the MAKEFLAGS environment variable that disables the jobserver.
  This prevents sub-processes that invoke make from accidentally using other
  open file descriptors as jobserver pipes.  For more information see
  https://savannah.gnu.org/bugs/?57242 and https://savannah.gnu.org/bugs/?62397
* A long-standing issue with the directory cache has been resolved: changes
  made as a side-effect of some other target's recipe are now noticed as
  expected.
* GNU Make can now be built for MS-Windows using the Tiny C tcc compiler.
  Port provided by Christian Jullien <eligis@orange.fr>

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
2023-02-10 09:27:17 +00:00
Peter Müller
9a7e4d8506 Switch checksums from MD5 to BLAKE2
Historically, the MD5 checksums in our LFS files serve as a protection
against broken downloads, or accidentally corrupted source files.

While the sources are nowadays downloaded via HTTPS, it make sense to
beef up integrity protection for them, since transparently intercepting
TLS is believed to be feasible for more powerful actors, and the state
of the public PKI ecosystem is clearly not helping.

Therefore, this patch switches from MD5 to BLAKE2, updating all LFS
files as well as make.sh to deal with this checksum algorithm. BLAKE2 is
notably faster (and more secure) than SHA2, so the performance penalty
introduced by this patch is negligible, if noticeable at all.

In preparation of this patch, the toolchain files currently used have
been supplied with BLAKE2 checksums as well on
https://source.ipfire.org/.

Cc: Michael Tremer <michael.tremer@ipfire.org>
Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
Acked-by: Michael Tremer <michael.tremeripfire.org>
2022-04-02 14:19:25 +00:00
Peter Müller
66c3619872 Early spring clean: Remove trailing whitespaces, and correct licence headers
Bumping across one of our scripts with very long trailing whitespaces, I
thought it might be a good idea to clean these up. Doing so, some
missing or inconsistent licence headers were fixed.

There is no need in shipping all these files en bloc, as their
functionality won't change.

Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
2022-02-18 23:54:57 +00:00
Robin Roevens
f15707c78c buildprocess: Add extra metadata to pak lfs files
* Add a Summary and Services field to all pak lfs files
* Replace occurances of INSTALL_INITSCRIPT with new INSTALL_INITSCRIPTS
  macro in all pak lfs files.

Signed-off-by: Robin Roevens <robin.roevens@disroot.org>
Reviewed-by: Peter Müller <peter.mueller@ipfire.org>
2022-02-11 15:13:15 +00:00
Arne Fitzenreiter
7f8beebd75 Revert "Revert "make: update to 4.3""
This reverts commit 85f5656aca.
2021-07-05 07:42:37 +02:00
Michael Tremer
85f5656aca Revert "make: update to 4.3"
This reverts commit f1d98a1c3f.

The new version of make seems to break building u-boot on armv5tel.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2021-01-26 11:15:04 +00:00
Arne Fitzenreiter
f1d98a1c3f make: update to 4.3
this this needed to build on systems with kernel >=5.5

Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2021-01-25 19:30:45 +00:00
Michael Tremer
c9e4607e88 make: Run autoreconf after applying patches
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2020-08-16 10:29:43 +00:00
Michael Tremer
2dc2a27803 lfs: Drop quotes in DEPS variable
Not sure why this has ever been there. This simply makes it
nicer to read and edit because we can have line-breaks now.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
2020-03-24 08:57:27 +00:00
Peter Müller
eee037b890 update disclaimer in LFS files
Most of these files still used old dates and/or domain names for contact
mail addresses. This is now replaced by an up-to-date copyright line.

Just some housekeeping... :-)

Signed-off-by: Peter Müller <peter.mueller@link38.eu>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2018-09-10 19:20:36 +01:00
Michael Tremer
2dd9f3b379 Cleanup toolchain scripts
No functional changes, just some tidy up

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2018-02-12 12:44:37 +00:00
Michael Tremer
dca7011c1f make: Patch against SEGV when using globbing functions
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2018-02-11 20:56:12 +00:00
Michael Tremer
6c4cc7ea1b Move toolchain from /tools to /tools_${arch}
This will allow us to run multiple builds on the same
system at the same time (or at least have them on disk).

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2017-11-23 15:57:28 +00:00
Marcel Lorenz
b4b56b4f5c make: update to 4.2.1
Signed-off-by: Marcel Lorenz <marcel.lorenz@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2016-09-24 13:03:59 +01:00
Erik Kapfer
9b4f445d2f make: Update to 4.1
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2015-07-09 12:09:07 +02:00
Michael Tremer
9572596c47 Merge remote-tracking branch 'origin/kernel-update' into glibc-update2
Conflicts:
	lfs/binutils
	lfs/ccache
	lfs/gcc
	lfs/glibc
	make.sh
2012-08-12 17:00:37 -04:00
Michael Tremer
cecd6ab4b2 toolchain: make is not built more than once anymore. 2012-08-11 17:56:53 -04:00
Arne Fitzenreiter
6c9d6fcc50 toolchain: build toolchain on armv6l and armv7l.
fixed build on hostsystems with hw-float works.
2012-08-11 14:06:56 -04:00
Arne Fitzenreiter
46c2a9e353 Fix full-toolchain build on fedora14. 2011-05-10 14:31:37 +02:00
Arne Fitzenreiter
4dab22a146 Add ffmpeg, upd make to 3.81 2008-04-13 17:40:34 +02:00
ms
992921c12d Made a simple make package.
git-svn-id: http://svn.ipfire.org/svn/ipfire/branches/2.1/trunk@1225 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8
2008-02-21 18:02:12 +00:00
ms
70df830214 Ein Paar Dateien fuer die GPLv3 angepasst.
git-svn-id: http://svn.ipfire.org/svn/ipfire/trunk@853 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8
2007-08-29 13:25:32 +00:00
ms
dd714b8aad Habe IPFire auf LFS 6.2 gebracht.
Das hier ist der erste Teil.
Nur Toolchain bisher.


git-svn-id: http://svn.ipfire.org/svn/ipfire/trunk@297 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8
2006-09-30 16:33:03 +00:00
ipfire
cd1a292722 git-svn-id: http://svn.ipfire.org/svn/ipfire/IPFire/source@16 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8 2006-02-15 21:15:54 +00:00