Somebody claiming to be Stuart Henderson wrote:

>                                   For some common things (in particular
> programs from coreutils) we have scaffolding to prevent autoconf from
> picking them up, but the arm-none-eabi ports are too complex for the
> normal things to work.

...And, after following up on the suggestions from this thread and
digging around in /usr/ports/infrastructure, I think I've figured out
one of the reasons why and come up with a better quick fix.

Newlib (and binutils and gcc, though they don't have this particular
symptom) does a lot of recursive configuring during the build, and
doesn't do a very good job of passing things the top-level configure
was asked to do down to the sub-configures.
Adding ${CONFIGURE_ENV} to ${MAKE_ENV} so that it affects the environment
that the sub-configures are actually running in persuades them to pick
up the overrides that tell them not to use gmkdir.

Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/arm-none-eabi/newlib/Makefile,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 Makefile
--- Makefile    28 May 2015 23:28:26 -0000      1.1.1.1
+++ Makefile    12 Jul 2015 23:42:48 -0000
@@ -7,6 +7,13 @@ VERSION=       2.2.0.1
 PKGNAME=       ${CONFIG}-newlib-${VERSION}
 #REVISION=     0
 
+# The build stage for newlib invokes configure (repeatedly), so make
+# sure the sub-configures run in a suitable environment.
+# Without this, if coreutils is present at configure time, the
+# sub-configures will pick up gmkdir as their preferred concurrency-safe
+# 'mkdir -p'.
+MAKE_ENV+=     ${CONFIGURE_ENV}
+
 HOMEPAGE=      http://sourceware.org/newlib/
 
 MASTER_SITES=  ftp://sourceware.org/pub/newlib/


-- 
Dave Vandervies
[email protected] / [email protected]

Plan your future!  Make God laugh!

Reply via email to