Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 24 Jun 2012 08:43:34 +0000 (UTC)
From:      Andrew Turner <andrew@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r237528 - head/lib/libelf
Message-ID:  <201206240843.q5O8hYmo098199@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: andrew
Date: Sun Jun 24 08:43:34 2012
New Revision: 237528
URL: http://svn.freebsd.org/changeset/base/237528

Log:
  Create a symlink to sys/elf32.h, sys/elf64.h, and sys/elf_common.h.
  
  When building libelf in the bootstrap stage this would include the tree
  versions of, for example, sys/_types.h. This would work as long as the
  tree's version of this file was close enough to the system's version of
  the file. If, however, there was a change in the tree such that the location
  of a typedef was moved this would cause problems. In this case the version
  of sys/_types.h in the tree no longer defines __wchar_t and expects it to
  to be defined in machine/_types.h, however we pick up machine/_types.h from
  the system and find it is not defined there. The solution is to restrict the
  parts of sys er include from the tree to those that are needed.
  
  This fixes the recent Tinderbox failure.
  
  Pointy Hat to:	andrew

Modified:
  head/lib/libelf/Makefile

Modified: head/lib/libelf/Makefile
==============================================================================
--- head/lib/libelf/Makefile	Sun Jun 24 08:28:06 2012	(r237527)
+++ head/lib/libelf/Makefile	Sun Jun 24 08:43:34 2012	(r237528)
@@ -55,9 +55,23 @@ SRCS=	elf_begin.c						\
 	${GENSRCS}
 INCS=	libelf.h gelf.h
 
+#
+# We need to link against the correct version of these files. One
+# solution is to include ../../sys in the include path. This causes
+# problems when a header file in sys depends on a file in another
+# part of the tree, e.g. a machine dependent header.
+#
+SRCS+=	sys/elf32.h sys/elf64.h sys/elf_common.h
+
 GENSRCS=	libelf_fsize.c libelf_msize.c libelf_convert.c
 CLEANFILES=	${GENSRCS}
-CFLAGS+=	-I${.CURDIR} -I${.CURDIR}/../../sys
+CFLAGS+=	-I${.CURDIR} -I.
+
+sys/elf32.h sys/elf64.h sys/elf_common.h: sys
+	ln -sf ${.CURDIR}/../../sys/${.TARGET} ${.TARGET}
+
+sys:
+	mkdir -p ${.OBJDIR}/sys
 
 SHLIB_MAJOR=	1
 



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