Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 16 Sep 2016 03:04:48 +0000 (UTC)
From:      Marcel Moolenaar <marcel@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r305855 - head/lib/libc/stdlib
Message-ID:  <201609160304.u8G34mOm000815@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: marcel
Date: Fri Sep 16 03:04:48 2016
New Revision: 305855
URL: https://svnweb.freebsd.org/changeset/base/305855

Log:
  When MAKEOBJDIRPREFIX points to a case-insensitive file system, the
  build can break when different source files create the same object
  files (case-insensitivity speaking).  This is the case for _Exit.c
  and _exit.s.  Compile _Exit.c as C99_Exit.c
  
  Reviewed by:	sjg@
  MFC after:	completion
  Sponsored by:	Bracket Computing
  Differential Revision:	https://reviews.freebsd.org/D7893

Modified:
  head/lib/libc/stdlib/Makefile.inc

Modified: head/lib/libc/stdlib/Makefile.inc
==============================================================================
--- head/lib/libc/stdlib/Makefile.inc	Fri Sep 16 01:38:22 2016	(r305854)
+++ head/lib/libc/stdlib/Makefile.inc	Fri Sep 16 03:04:48 2016	(r305855)
@@ -4,7 +4,7 @@
 # machine-independent stdlib sources
 .PATH: ${LIBC_SRCTOP}/${LIBC_ARCH}/stdlib ${LIBC_SRCTOP}/stdlib
 
-MISRCS+=_Exit.c a64l.c abort.c abs.c atexit.c atof.c atoi.c atol.c atoll.c \
+MISRCS+=C99_Exit.c a64l.c abort.c abs.c atexit.c atof.c atoi.c atol.c atoll.c \
 	bsearch.c cxa_thread_atexit.c div.c exit.c getenv.c getopt.c getopt_long.c \
 	getsubopt.c hcreate.c hcreate_r.c hdestroy_r.c heapsort.c heapsort_b.c \
 	hsearch_r.c imaxabs.c imaxdiv.c \
@@ -16,6 +16,13 @@ MISRCS+=_Exit.c a64l.c abort.c abs.c ate
 	strtol.c strtoll.c strtoq.c strtoul.c strtonum.c strtoull.c \
         strtoumax.c strtouq.c system.c tdelete.c tfind.c tsearch.c twalk.c
 
+# Work around an issue on case-insensitive file systems.
+# libc has both _Exit.c and _exit.s and they both yield
+# _exit.o (case insensitively speaking).
+CLEANFILES+=C99_Exit.c
+C99_Exit.c: ${LIBC_SRCTOP}/stdlib/_Exit.c .NOMETA
+	ln -sf ${.ALLSRC} ${.TARGET}
+
 SYM_MAPS+= ${LIBC_SRCTOP}/stdlib/Symbol.map
 
 # machine-dependent stdlib sources



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201609160304.u8G34mOm000815>