help-make
[Top][All Lists]
Advanced

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

Re: bisecting gnu make


From: DSB
Subject: Re: bisecting gnu make
Date: Mon, 18 Mar 2024 12:58:10 -0400

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
>>
>

Attachment: bisect.mk
Description: Binary data


reply via email to

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