threads / discuss / 26090

1.7.3.4 build regression

Subject: 1.7.3.4 build regression

## tl;dr

3 messages between Dec 17, 2010 and Dec 17, 2010.

replies: 2people: 2as markdown or json

Jeremy Huddleston· Dec 17, 2010, 03:31 UTC · lore

1.7.3.4 seems to have a regression (over 1.7.3.2 ... didn't try 1.7.3.3) building. I do: make (strip the built executables) make install

During 'make install', the executables get remade even though they shouldn't be.  My guess is that a Makefile dependency cycle has been added, but I haven't looked into it in detail yet.  Is this a known issue?
Jeremy Huddleston· Dec 17, 2010, 04:02 UTC · lore

Re: 1.7.3.4 build regression

On Dec 16, 2010, at 19:41, Jonathan Nieder wrote:
Show 16 quoted lines
> Hi Jeremy,
> 
> Jeremy Huddleston wrote:
> 
>> 1.7.3.4 seems to have a regression (over 1.7.3.2 ... didn't try 1.7.3.3)
>> building.  I do:
>> 
>> make
>> (strip the built executables)
>> make install
>> 
>> During 'make install', the executables get remade even though they
>> shouldn't be.
> 
> Just a wild guess: do you pass CC on the "make" and not the "make
> install" command line?
Yes.  Good guess.  Why would that be affecting it?
Some updates:
It occurs with 1.7.3.3 as well.

"make" line is: /Developer/usr/bin/make -C /tmp/Git-16.roots/Git-16~obj/i386/ -j`sysctl -n hw.activecpu` prefix=/usr NO_FINK=YesPlease NO_DARWIN_PORTS=YesPlease RUNTIME_PREFIX=YesPlease GITGUI_VERSION=0.12.0 V=1 CFLAGS='-ggdb3 -Os -pipe -Wall -Wformat-security -D_FORTIFY_SOURCE=2' 'CC=cc -arch i386' 'uname_M=i386' 'uname_P=i386' && touch /tmp/Git-16.roots/Git-16~obj/i386/build.timestamp

"make install" line is:
/Developer/usr/bin/make -C /tmp/Git-16.roots/Git-16~obj/i386 -j`sysctl -n hw.activecpu` prefix=/usr NO_FINK=YesPlease NO_DARWIN_PORTS=YesPlease RUNTIME_PREFIX=YesPlease GITGUI_VERSION=0.12.0 V=1 CFLAGS='-ggdb3 -Os -pipe -Wall -Wformat-security -D_FORTIFY_SOURCE=2' \          'DESTDIR=/tmp/Git-16.roots/Git-16~dst' \
          install
Jonathan Nieder· Dec 17, 2010, 04:17 UTC · re: Jeremy Huddleston · lore

Re: 1.7.3.4 build regression

Jeremy Huddleston wrote:
> On Dec 16, 2010, at 19:41, Jonathan Nieder wrote:
>> Jeremy Huddleston wrote:
Show 11 quoted lines
>>> make
>>> (strip the built executables)
>>> make install
>>>
>>> During 'make install', the executables get remade even though they
>>> shouldn't be.
>>
>> Just a wild guess: do you pass CC on the "make" and not the "make
>> install" command line?
>
> Yes.  Good guess.  Why would that be affecting it?

See v1.7.3.3~28^2 (Makefile: add CC to TRACK_CFLAGS, 2010-09-12), found with "git log --no-merges v1.7.3.2..v1.7.3.4 -- Makefile". That is, now CC is tracked like $prefix and $CFLAGS are.

The idea of that change was presumably that if you switch CC from, say, "gcc -m32" to "gcc -m64", then the build result will not be correct unless you remake things. I have mixed feelings about it, since from time to time I might want to switch between gcc-4.4 and gcc-4.5 without rebuilding everything.

Show 8 quoted lines
> "make" line is:
> /Developer/usr/bin/make -C /tmp/Git-16.roots/Git-16~obj/i386/ \
>	-j`sysctl -n hw.activecpu` \
>	prefix=/usr NO_FINK=YesPlease NO_DARWIN_PORTS=YesPlease \
>	RUNTIME_PREFIX=YesPlease \
>	GITGUI_VERSION=0.12.0 V=1 \
>	CFLAGS='-ggdb3 -Os -pipe -Wall -Wformat-security -D_FORTIFY_SOURCE=2' \
>	'CC=cc -arch i386' 'uname_M=i386' 'uname_P=i386'

Interesting. It might be convenient to save these variables in /tmp/Git-16.roots/Git-16~obj/i386/config.mak.

Thanks for reporting.  Some thinking to do.

← back to recent threads