Re: Segment fault at exit when compiled with Clang and libc++

al davis <[email protected]> Sat, 10 Feb 2024 10:58:14 -0500
Newsgroups gmane.comp.gnu.gnucap.bugs
Message-ID <20240210105814.2b78bc43@z>
On Sat, 10 Feb 2024 02:55:49 -0600
LdBeth <[email protected]> wrote:
> The cause seems is the toplevel Makefile looks like
> 
> install:
> 	(cd conf; ${MAKE} install)
> 	(cd include; ${MAKE} install)
> 	(cd lib; ${MAKE} install)
> 	(cd modelgen; ${MAKE} install)
> 	(cd main; ${MAKE} install)
> 	(cd apps; ${MAKE} install)
> 
> but GNU Make 3.81 install on macOS seems does not like the parenthesis,
> and just says:
> 
> $ make install
> make: `install' is up to date.

The problem is that there is a file "install" that is tricking make.

The solution is to add a line to the top level Makefile:

.PHONY install

All of the targets there should be identified as ".PHONY" to avoid
this problem popping up elsewhere.

The problem here has to do with the non-case-sensitivity of the Mac
file system.  There's a file "INSTALL", which looks a lot like
"install".

> Removing the parenthesis makes the build work again.

Not really.  It just misbehaves in a different way.

The parenthesis says to run that group of commands in a subshell, so
the cd is canceled after that line is done.

I think the real difference that made it appear to work is that you
edited the file, changing its date stamp, so it  is now newer than
INSTALL.