# 1.7.3.4 build regression

3 messages from 2010-12-17 to 2010-12-17. Participants: Jeremy Huddleston, Jonathan Nieder.
Thread: https://gitlist.dev/t/26090

## Jeremy Huddleston, 2010-12-17 03:31

Subject: 1.7.3.4 build regression
Message-ID: <8779CB66-03D3-4EC9-8650-521532112CA5@apple.com>
URL: https://gitlist.dev/e/8779CB66-03D3-4EC9-8650-521532112CA5%40apple.com

```
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, 2010-12-17 04:02

Subject: Re: 1.7.3.4 build regression
Message-ID: <21774743-8BA8-4A1C-BDCF-1E3F7D85EFB5@apple.com>
URL: https://gitlist.dev/e/21774743-8BA8-4A1C-BDCF-1E3F7D85EFB5%40apple.com
In-Reply-To: <20101217034123.GA7362@burratino>

```
On Dec 16, 2010, at 19:41, Jonathan Nieder wrote:

> 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, 2010-12-17 04:17

Subject: Re: 1.7.3.4 build regression
Message-ID: <20101217041750.GA7649@burratino>
URL: https://gitlist.dev/e/20101217041750.GA7649%40burratino
In-Reply-To: <21774743-8BA8-4A1C-BDCF-1E3F7D85EFB5@apple.com>

```
Jeremy Huddleston wrote:
> On Dec 16, 2010, at 19:41, Jonathan Nieder wrote:
>> Jeremy Huddleston wrote:

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

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

```
