From owner-svn-src-head@FreeBSD.ORG Mon Dec 1 17:49:47 2014 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id DDA839F; Mon, 1 Dec 2014 17:49:46 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BD5A0E94; Mon, 1 Dec 2014 17:49:46 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sB1Hnk2c062825; Mon, 1 Dec 2014 17:49:46 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sB1Hnhs1062805; Mon, 1 Dec 2014 17:49:43 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201412011749.sB1Hnhs1062805@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Mon, 1 Dec 2014 17:49:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r275373 - in head: . gnu/usr.bin/binutils lib lib/libelftc share/mk tools/build/options usr.bin usr.bin/addr2line usr.bin/elfcopy usr.bin/nm usr.bin/size usr.bin/strings X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Dec 2014 17:49:47 -0000 Author: emaste Date: Mon Dec 1 17:49:42 2014 New Revision: 275373 URL: https://svnweb.freebsd.org/changeset/base/275373 Log: Build infrastructure for elftoolchain tools Set WITH_ELFTOOLCHAIN_TOOLS in src.conf to use the elftoolchain version of the following tools: * addr2line * elfcopy (strip / mcs) * nm * size * strings Reviewed by: bapt (earlier version) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D1224 Added: head/lib/libelftc/ head/lib/libelftc/Makefile (contents, props changed) head/lib/libelftc/elftc_version.c (contents, props changed) head/tools/build/options/WITH_ELFTOOLCHAIN_TOOLS (contents, props changed) head/usr.bin/addr2line/ head/usr.bin/addr2line/Makefile (contents, props changed) head/usr.bin/elfcopy/ head/usr.bin/elfcopy/Makefile (contents, props changed) head/usr.bin/nm/ head/usr.bin/nm/Makefile (contents, props changed) head/usr.bin/size/ head/usr.bin/size/Makefile (contents, props changed) head/usr.bin/strings/ head/usr.bin/strings/Makefile (contents, props changed) Modified: head/Makefile.inc1 head/gnu/usr.bin/binutils/Makefile head/lib/Makefile head/share/mk/src.libnames.mk head/share/mk/src.opts.mk head/usr.bin/Makefile Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Mon Dec 1 17:36:10 2014 (r275372) +++ head/Makefile.inc1 Mon Dec 1 17:49:42 2014 (r275373) @@ -1415,6 +1415,14 @@ _kgzip= usr.sbin/kgzip # If we're given an XAS, don't build binutils. .if ${XAS:M/*} == "" && ${MK_BINUTILS_BOOTSTRAP} != "no" _binutils= gnu/usr.bin/binutils +.if ${MK_ELFTOOLCHAIN_TOOLS} != "no" +_elftctools= lib/libelftc \ + usr.bin/addr2line \ + usr.bin/elfcopy \ + usr.bin/nm \ + usr.bin/size \ + usr.bin/strings +.endif .endif # If an full path to an external cross compiler is given, don't build @@ -1434,6 +1442,7 @@ cross-tools: .MAKE ${_clang_libs} \ ${_clang} \ ${_binutils} \ + ${_elftctools} \ ${_cc} \ usr.bin/xlint/lint1 usr.bin/xlint/lint2 usr.bin/xlint/xlint \ ${_btxld} \ @@ -1491,6 +1500,7 @@ native-xtools: .MAKE ${_clang_tblgen} \ usr.bin/ar \ ${_binutils} \ + ${_elftctools} \ ${_cc} \ ${_gcc_tools} \ ${_clang_libs} \ @@ -2045,6 +2055,7 @@ _xb-build-tools: _xb-cross-tools: .for _tool in \ ${_binutils} \ + ${_elftctools} \ usr.bin/ar \ ${_clang_libs} \ ${_clang} \ @@ -2077,6 +2088,7 @@ _xi-cross-tools: @echo "_xi-cross-tools" .for _tool in \ ${_binutils} \ + ${_elftctools} \ usr.bin/ar \ ${_clang_libs} \ ${_clang} \ Modified: head/gnu/usr.bin/binutils/Makefile ============================================================================== --- head/gnu/usr.bin/binutils/Makefile Mon Dec 1 17:36:10 2014 (r275372) +++ head/gnu/usr.bin/binutils/Makefile Mon Dec 1 17:49:42 2014 (r275373) @@ -1,19 +1,29 @@ # $FreeBSD$ +.include + SUBDIR= libiberty \ libbfd \ libopcodes \ libbinutils \ - addr2line \ + ${_addr2line} \ as \ ld \ - nm \ + ${_nm} \ objcopy \ objdump \ readelf \ - size \ - strings \ - strip \ + ${_size} \ + ${_strings} \ + ${_strip} \ doc + +.if ${MK_ELFTOOLCHAIN_TOOLS} == "no" +_addr2line= addr2line +_nm= nm +_size= size +_strings= strings +_strip= strip +.endif .include Modified: head/lib/Makefile ============================================================================== --- head/lib/Makefile Mon Dec 1 17:36:10 2014 (r275372) +++ head/lib/Makefile Mon Dec 1 17:49:42 2014 (r275373) @@ -45,6 +45,7 @@ SUBDIR= ${SUBDIR_ORDERED} \ libdpv \ libdwarf \ libedit \ + ${_libelftc} \ ${_libevent} \ libexecinfo \ libexpat \ @@ -190,6 +191,10 @@ _clang= clang _cuse= libcuse .endif +.if ${MK_ELFTOOLCHAIN_TOOLS} != "no" +_libelftc= libelftc +.endif + .if ${MK_GPIB} != "no" _libgpib= libgpib .endif Added: head/lib/libelftc/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libelftc/Makefile Mon Dec 1 17:49:42 2014 (r275373) @@ -0,0 +1,30 @@ +# $FreeBSD$ +.include + +INTERNALLIB= + +ELFTCDIR= ${.CURDIR}/../../contrib/elftoolchain + +.PATH: ${ELFTCDIR}/libelftc + +LIB= elftc + +SRCS= elftc_bfdtarget.c \ + elftc_copyfile.c \ + elftc_demangle.c \ + elftc_set_timestamps.c \ + elftc_string_table.c \ + elftc_version.c \ + libelftc_bfdtarget.c \ + libelftc_dem_arm.c \ + libelftc_dem_gnu2.c \ + libelftc_dem_gnu3.c \ + libelftc_hash.c \ + libelftc_vstr.c + +INCS= libelftc.h +CFLAGS+=-I${ELFTCDIR}/libelftc -I${ELFTCDIR}/common + +NO_MAN= yes + +.include Added: head/lib/libelftc/elftc_version.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libelftc/elftc_version.c Mon Dec 1 17:49:42 2014 (r275373) @@ -0,0 +1,10 @@ +/* $FreeBSD$ */ + +#include +#include + +const char * +elftc_version(void) +{ + return "libelftc r2974"; +} Modified: head/share/mk/src.libnames.mk ============================================================================== --- head/share/mk/src.libnames.mk Mon Dec 1 17:36:10 2014 (r275372) +++ head/share/mk/src.libnames.mk Mon Dec 1 17:49:42 2014 (r275373) @@ -27,6 +27,7 @@ _INTERNALIBS= \ amu \ bsnmptools \ cron \ + elftc \ event \ fifolog \ ipf \ @@ -286,6 +287,10 @@ LIBATF_CXX?= ${LIBATF_CXXDIR}/libatf-c++ LIBBSDSTATDIR= ${ROOTOBJDIR}/lib/libbsdstat LIBBSDSTAT?= ${LIBBSDSTATDIR}/libbsdstat.a +LIBELFTCDIR= ${ROOTOBJDIR}/lib/libelftc +LDELFTC?= ${LIBELFTCDIR}/libelftc.a +LIBELFTC?= ${LIBELFTCDIR}/libelftc.a + LIBEVENTDIR= ${ROOTOBJDIR}/lib/libevent LIBEVENT?= ${LIBEVENTDIR}/libevent.a Modified: head/share/mk/src.opts.mk ============================================================================== --- head/share/mk/src.opts.mk Mon Dec 1 17:36:10 2014 (r275372) +++ head/share/mk/src.opts.mk Mon Dec 1 17:49:42 2014 (r275373) @@ -160,6 +160,7 @@ __DEFAULT_NO_OPTIONS = \ BSD_GREP \ CLANG_EXTRAS \ EISA \ + ELFTOOLCHAIN_TOOLS \ FMAKE \ HESIOD \ LLDB \ Added: head/tools/build/options/WITH_ELFTOOLCHAIN_TOOLS ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/build/options/WITH_ELFTOOLCHAIN_TOOLS Mon Dec 1 17:49:42 2014 (r275373) @@ -0,0 +1,9 @@ +.\" $FreeBSD$ +Set to use +.Xr addr2line 1 , +.Xr nm 1 , +.Xr size 1 , +.Xr strings 1 , +and +.Xr strip 1 +from the elftoolchain project instead of GNU binutils. Modified: head/usr.bin/Makefile ============================================================================== --- head/usr.bin/Makefile Mon Dec 1 17:36:10 2014 (r275372) +++ head/usr.bin/Makefile Mon Dec 1 17:49:42 2014 (r275373) @@ -9,7 +9,8 @@ # Moved to secure: bdes # -SUBDIR= alias \ +SUBDIR= ${_addr2line} \ + alias \ apply \ asa \ awk \ @@ -41,6 +42,7 @@ SUBDIR= alias \ du \ ee \ elf2aout \ + ${_elfcopy} \ elfdump \ enigma \ env \ @@ -119,6 +121,7 @@ SUBDIR= alias \ nfsstat \ nice \ nl \ + ${_nm} \ nohup \ opieinfo \ opiekey \ @@ -150,12 +153,14 @@ SUBDIR= alias \ seq \ shar \ showmount \ + ${_size} \ sockstat \ soeliminate \ sort \ split \ stat \ stdbuf \ + ${_strings} \ su \ systat \ tabs \ @@ -236,6 +241,14 @@ SUBDIR+= calendar _clang= clang .endif +.if ${MK_ELFTOOLCHAIN_TOOLS} != "no" +_addr2line= addr2line +_elfcopy= elfcopy +_nm= nm +_size= size +_strings= strings +.endif + .if ${MK_FMAKE} != "no" SUBDIR+= make .endif Added: head/usr.bin/addr2line/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.bin/addr2line/Makefile Mon Dec 1 17:49:42 2014 (r275373) @@ -0,0 +1,16 @@ +# $FreeBSD$ + +.include + +ELFTCDIR= ${.CURDIR}/../../contrib/elftoolchain +ADDR2LINEDIR= ${ELFTCDIR}/addr2line + +.PATH: ${ADDR2LINEDIR} + +PROG= addr2line + +LIBADD= elftc dwarf elf + +CFLAGS+=-I${ELFTCDIR}/libelftc -I${ELFTCDIR}/common + +.include Added: head/usr.bin/elfcopy/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.bin/elfcopy/Makefile Mon Dec 1 17:49:42 2014 (r275373) @@ -0,0 +1,24 @@ +# $FreeBSD$ + +.include + +ELFTCDIR= ${.CURDIR}/../../contrib/elftoolchain +ELFCOPYDIR= ${ELFTCDIR}/elfcopy + +.PATH: ${ELFCOPYDIR} + +PROG= elfcopy + +SRCS= archive.c ascii.c binary.c main.c sections.c segments.c symbols.c + +WARNS?= 5 + +LIBADD= archive elftc elf + +CFLAGS+=-I${ELFTCDIR}/libelftc -I${ELFTCDIR}/common + +MAN= elfcopy.1 strip.1 + +LINKS= ${BINDIR}/elfcopy ${BINDIR}/strip + +.include Added: head/usr.bin/nm/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.bin/nm/Makefile Mon Dec 1 17:49:42 2014 (r275373) @@ -0,0 +1,16 @@ +# $FreeBSD$ + +.include + +ELFTCDIR= ${.CURDIR}/../../contrib/elftoolchain +NMDIR= ${ELFTCDIR}/nm + +.PATH: ${NMDIR} + +PROG= nm + +LIBADD= dwarf elftc elf + +CFLAGS+=-I${ELFTCDIR}/libelftc -I${ELFTCDIR}/common + +.include Added: head/usr.bin/size/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.bin/size/Makefile Mon Dec 1 17:49:42 2014 (r275373) @@ -0,0 +1,16 @@ +# $FreeBSD$ + +.include + +ELFTCDIR= ${.CURDIR}/../../contrib/elftoolchain +SIZEDIR= ${ELFTCDIR}/size + +.PATH: ${SIZEDIR} + +PROG= size + +LIBADD= elftc elf + +CFLAGS+=-I${ELFTCDIR}/libelftc -I${ELFTCDIR}/common + +.include Added: head/usr.bin/strings/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.bin/strings/Makefile Mon Dec 1 17:49:42 2014 (r275373) @@ -0,0 +1,15 @@ +# $FreeBSD$ + +.include + +ELFTCDIR= ${.CURDIR}/../../contrib/elftoolchain + +.PATH: ${ELFTCDIR}/strings + +PROG= strings + +LIBADD= elftc elf + +CFLAGS+=-I${ELFTCDIR}/libelftc -I${ELFTCDIR}/common + +.include