help-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bisecting gnu make


From: Paul Smith
Subject: Re: bisecting gnu make
Date: Mon, 18 Mar 2024 13:11:57 -0400
User-agent: Evolution 3.50.4 (by Flathub.org)

I'm sorry I didn't think of this before, but another option would be to
use the build.sh bootstrapping script, which we provide for situations
where you want to build GNU Make on systems where there isn't already a
make instance available.

This doesn't run make and doesn't require a configure, it just uses a
simple build.cfg file which is generated by configure but you can see
it's trivial and just leave it alone.

As for bisecting across compile errors, compile errors that are
committed are exceedingly rare but it happens: sometimes things work on
my system but not on other systems.  It is something your bisecting
code will have to take into account, and just move past to the next
commit.  There's a "git bisect skip" command for this.


On Mon, 2024-03-18 at 12:58 -0400, DSB wrote:
> Unfortunately it looks like I won't be able to get this solved. I was
> hoping to, and even thinking of contributing some README-type
> documentation on how to do it, but I just couldn't get it to work and
> we ended up solving the problem another way so the impetus is gone. I
> didn't keep track of all the details but in case anyone's curious
> here are a few:
> 
> - The first bisection (between tags 4.3 and 4.4.1) happened to land
> on 6f8da5f4b86a679143d6f6b99e8cfcc1f19a0593 which says "Don't use
> STRING_SIZE_TUPLE in mempcpy. If mempcpy() is a macro then
> STRING_SIZE_TUPLE won't compile". And sure enough the compile fails
> on my system. The fix is simple but having a local change breaks the
> subsequent bisection with various complications.
> 
> - README.git says that autoconf 2.69 is required which is exactly
> what I have. But at some point in the bisection it aborts saying 2.71
> is required. I have no idea how that could happen but it did,
> repeatedly.
> 
> - When rolling time backward using GNU make, or really with any
> timestamp-based build tool, it's necessary to do clean builds. But
> make clean seems to remove src/mkcustom.h which then breaks further
> builds. Dmitry's makefile has a workaround for this but stashing and
> reusing a generated file seems unsafe.
> 
> - Sometimes the generated binary dumped core. I'm sure this could be
> diagnosed, and if git HEAD core-dumped locally it would be worth my
> looking into it, but I can't justify debugging a core dump in a
> hacked environment at some random hash from the past. So at this
> point I dropped the project.
> 
> Dmitry: I did make some changes to your makefile so I attach a
> renamed version in case you want to take any of them. The one I
> remember is to cause "make --version" to show the git hash it was
> built from which I think might even be worth keeping in the
> production version though not in the first line. If the idea is kept,
> though, it shouldn't be done by hacking config.h as I did but
> presumably with a -D flag. Also, I had to add -std=c99 and some -W
> flags to keep the compiler happy. And I removed the -MMD etc since I
> was doing clean builds every time anyway.
> 
> David
> 
> On Tue, Mar 12, 2024 at 11:21 AM David Boyce
> <david.s.boyce@gmail.com>
> wrote:
> 
> > Thank you both for the replies. I've had little time to get back to
> > this
> > and little success when I tried but it's too early to draw any
> > conclusions.
> > I'll update on progress when I get back to it.
> > 
> > Paul, I didn't know "make make" was an option but it doesn't seem
> > to help.
> > Actually I think there's a bit of a bug. Starting from latest git
> > on
> > CentOS7.6 here's what I see:
> > 
> > ./bootstrap && ./configure && make make
> > ...
> > make: *** No rule to make target 'lib/libgnu.a', needed by 'make'. 
> > Stop.
> > 
> > A regular "make" completes after which "make make" works.
> > 
> > David
> > 
> > On Sat, Mar 9, 2024 at 12:16 PM Dmitry Goncharov
> > <dgoncharov@users.sf.net>
> > wrote:
> > 
> > > On Fri, Mar 8, 2024 at 9:32 AM DSB <yahoo@boyski.com> wrote:
> > > > Is there a scripted way to
> > > > reliably build make at each bisection point (assuming 4.3 as
> > > > the
> > > minimum)?
> > > 
> > > There is definitely a scripted way to do this.
> > > i use this small makefile (see in the attachment) instead of the
> > > automake generated one.
> > > This makefile builds make from all .c files located in src/ and
> > > lib/.
> > > Keep your src/ and lib/ free of stray .c files.
> > > This makefile also correctly handles removals of header files and
> > > all
> > > other known .d file necessities.
> > > 
> > > To use it
> > > 1. Create a subdirectory in your make source code directory. Step
> > > to
> > > this newly created subdirectory.
> > > 2. Run ../configure. This needs to be done once to generate
> > > config.h.
> > > 3. Run make -f ../test.mk.
> > > 4. Checkout another commit and run make -f ../test.mk. No need to
> > > run
> > > configure or bootstrap again.
> > > 
> > > Here is a sample bash session.
> > > 
> > > dgoncharov@opti:~/src/gmake/make $ mkdir t64
> > > dgoncharov@opti:~/src/gmake/make $ cd t64
> > > dgoncharov@opti:~/src/gmake/make/t64 $ ../configure --without-
> > > guile
> > > 'CFLAGS=-Wall -Wextra -ggdb -O0 -DMAKE_MAINTAINER_MODE=1 -m64
> > > -fsanitize=leak -fsanitize=undefined
> > > -fsanitize-address-use-after-scope -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=pointer-subtract' LDFLAGS=-
> > > m64 >
> > > /dev/null
> > > dgoncharov@opti:~/src/gmake/make/t64 $ make -f ../test.mk
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF ar.td -o
> > > ar.o -c
> > > ../src/ar.c || exit 1
> > > read obj src headers <ar.td; echo "$headers" >ar.d || exit 1
> > > touch -c ar.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF arscan.td -
> > > o
> > > arscan.o -c ../src/arscan.c || exit 1
> > > read obj src headers <arscan.td; echo "$headers" >arscan.d ||
> > > exit 1
> > > touch -c arscan.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF commands.td
> > > -o
> > > commands.o -c ../src/commands.c || exit 1
> > > read obj src headers <commands.td; echo "$headers" >commands.d ||
> > > exit 1
> > > touch -c commands.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF default.td
> > > -o
> > > default.o -c ../src/default.c || exit 1
> > > read obj src headers <default.td; echo "$headers" >default.d ||
> > > exit 1
> > > touch -c default.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF dir.td -o
> > > dir.o
> > > -c ../src/dir.c || exit 1
> > > read obj src headers <dir.td; echo "$headers" >dir.d || exit 1
> > > touch -c dir.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF expand.td -
> > > o
> > > expand.o -c ../src/expand.c || exit 1
> > > read obj src headers <expand.td; echo "$headers" >expand.d ||
> > > exit 1
> > > touch -c expand.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF file.td -o
> > > file.o -c ../src/file.c || exit 1
> > > read obj src headers <file.td; echo "$headers" >file.d || exit 1
> > > touch -c file.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF function.td
> > > -o
> > > function.o -c ../src/function.c || exit 1
> > > read obj src headers <function.td; echo "$headers" >function.d ||
> > > exit 1
> > > touch -c function.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF getopt.td -
> > > o
> > > getopt.o -c ../src/getopt.c || exit 1
> > > read obj src headers <getopt.td; echo "$headers" >getopt.d ||
> > > exit 1
> > > touch -c getopt.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF getopt1.td
> > > -o
> > > getopt1.o -c ../src/getopt1.c || exit 1
> > > read obj src headers <getopt1.td; echo "$headers" >getopt1.d ||
> > > exit 1
> > > touch -c getopt1.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF guile.td -o
> > > guile.o -c ../src/guile.c || exit 1
> > > read obj src headers <guile.td; echo "$headers" >guile.d || exit
> > > 1
> > > touch -c guile.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF hash.td -o
> > > hash.o -c ../src/hash.c || exit 1
> > > read obj src headers <hash.td; echo "$headers" >hash.d || exit 1
> > > touch -c hash.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF implicit.td
> > > -o
> > > implicit.o -c ../src/implicit.c || exit 1
> > > read obj src headers <implicit.td; echo "$headers" >implicit.d ||
> > > exit 1
> > > touch -c implicit.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF job.td -o
> > > job.o
> > > -c ../src/job.c || exit 1
> > > read obj src headers <job.td; echo "$headers" >job.d || exit 1
> > > touch -c job.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF load.td -o
> > > load.o -c ../src/load.c || exit 1
> > > read obj src headers <load.td; echo "$headers" >load.d || exit 1
> > > touch -c load.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF loadapi.td
> > > -o
> > > loadapi.o -c ../src/loadapi.c || exit 1
> > > read obj src headers <loadapi.td; echo "$headers" >loadapi.d ||
> > > exit 1
> > > touch -c loadapi.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF main.td -o
> > > main.o -c ../src/main.c || exit 1
> > > read obj src headers <main.td; echo "$headers" >main.d || exit 1
> > > touch -c main.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF misc.td -o
> > > misc.o -c ../src/misc.c || exit 1
> > > read obj src headers <misc.td; echo "$headers" >misc.d || exit 1
> > > touch -c misc.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF output.td -
> > > o
> > > output.o -c ../src/output.c || exit 1
> > > read obj src headers <output.td; echo "$headers" >output.d ||
> > > exit 1
> > > touch -c output.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF posixos.td
> > > -o
> > > posixos.o -c ../src/posixos.c || exit 1
> > > read obj src headers <posixos.td; echo "$headers" >posixos.d ||
> > > exit 1
> > > touch -c posixos.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF read.td -o
> > > read.o -c ../src/read.c || exit 1
> > > read obj src headers <read.td; echo "$headers" >read.d || exit 1
> > > touch -c read.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF remake.td -
> > > o
> > > remake.o -c ../src/remake.c || exit 1
> > > read obj src headers <remake.td; echo "$headers" >remake.d ||
> > > exit 1
> > > touch -c remake.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF remote-
> > > stub.td
> > > -o remote-stub.o -c ../src/remote-stub.c || exit 1
> > > read obj src headers <remote-stub.td; echo "$headers" >remote-
> > > stub.d ||
> > > exit 1
> > > touch -c remote-stub.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF rule.td -o
> > > rule.o -c ../src/rule.c || exit 1
> > > read obj src headers <rule.td; echo "$headers" >rule.d || exit 1
> > > touch -c rule.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF shuffle.td
> > > -o
> > > shuffle.o -c ../src/shuffle.c || exit 1
> > > read obj src headers <shuffle.td; echo "$headers" >shuffle.d ||
> > > exit 1
> > > touch -c shuffle.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF signame.td
> > > -o
> > > signame.o -c ../src/signame.c || exit 1
> > > read obj src headers <signame.td; echo "$headers" >signame.d ||
> > > exit 1
> > > touch -c signame.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF strcache.td
> > > -o
> > > strcache.o -c ../src/strcache.c || exit 1
> > > read obj src headers <strcache.td; echo "$headers" >strcache.d ||
> > > exit 1
> > > touch -c strcache.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF variable.td
> > > -o
> > > variable.o -c ../src/variable.c || exit 1
> > > read obj src headers <variable.td; echo "$headers" >variable.d ||
> > > exit 1
> > > touch -c variable.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF version.td
> > > -o
> > > version.o -c ../src/version.c || exit 1
> > > read obj src headers <version.td; echo "$headers" >version.d ||
> > > exit 1
> > > touch -c version.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF vpath.td -o
> > > vpath.o -c ../src/vpath.c || exit 1
> > > read obj src headers <vpath.td; echo "$headers" >vpath.d || exit
> > > 1
> > > touch -c vpath.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF warning.td
> > > -o
> > > warning.o -c ../src/warning.c || exit 1
> > > read obj src headers <warning.td; echo "$headers" >warning.d ||
> > > exit 1
> > > touch -c warning.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF alloca.td -
> > > o
> > > alloca.o -c ../lib/alloca.c || exit 1
> > > read obj src headers <alloca.td; echo "$headers" >alloca.d ||
> > > exit 1
> > > touch -c alloca.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF
> > > concat-filename.td -o concat-filename.o -c ../lib/concat-
> > > filename.c ||
> > > exit 1
> > > read obj src headers <concat-filename.td; echo "$headers"
> > > > concat-filename.d || exit 1
> > > touch -c concat-filename.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF findprog-
> > > in.td
> > > -o findprog-in.o -c ../lib/findprog-in.c || exit 1
> > > read obj src headers <findprog-in.td; echo "$headers" >findprog-
> > > in.d ||
> > > exit 1
> > > touch -c findprog-in.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF fnmatch.td
> > > -o
> > > fnmatch.o -c ../lib/fnmatch.c || exit 1
> > > read obj src headers <fnmatch.td; echo "$headers" >fnmatch.d ||
> > > exit 1
> > > touch -c fnmatch.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF
> > > getloadavg.td -o
> > > getloadavg.o -c ../lib/getloadavg.c || exit 1
> > > read obj src headers <getloadavg.td; echo "$headers"
> > > >getloadavg.d ||
> > > exit 1
> > > touch -c getloadavg.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF glob.td -o
> > > glob.o -c ../lib/glob.c || exit 1
> > > read obj src headers <glob.td; echo "$headers" >glob.d || exit 1
> > > touch -c glob.o
> > > cc -I../src -I../lib -Isrc -
> > > DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\"  -Wall -Wextra -Wno-error -ggdb -O0 -
> > > m64
> > > -fno-omit-frame-pointer -fno-common -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak  -MMD -MF strtol.td -
> > > o
> > > strtol.o -c ../lib/strtol.c || exit 1
> > > read obj src headers <strtol.td; echo "$headers" >strtol.d ||
> > > exit 1
> > > touch -c strtol.o
> > > cc -o make ar.o arscan.o commands.o default.o dir.o expand.o
> > > file.o
> > > function.o getopt.o getopt1.o guile.o hash.o implicit.o job.o
> > > load.o
> > > loadapi.o main.o misc.o output.o posixos.o read.o remake.o
> > > remote-stub.o rule.o shuffle.o signame.o strcache.o variable.o
> > > version.o vpath.o warning.o alloca.o concat-filename.o findprog-
> > > in.o
> > > fnmatch.o getloadavg.o glob.o strtol.o -fsanitize=address
> > > -fsanitize=pointer-compare -fsanitize=undefined
> > > -fsanitize=pointer-subtract -fsanitize=leak
> > > dgoncharov@opti:~/src/gmake/make/t64 $
> > > 
> > > This makefile assumes the gcc depfiles format. See here
> > > https://github.com/dgoncharov/efficient-autodeps-with-gmake how
> > > to
> > > modify this makefile if your compiler generates  depfiles of the
> > > other
> > > format.
> > > 
> > > 
> > > regards, Dmitry
> > > 
> > 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]