aboutsummaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
authorBjoern A. Zeeb <bz@FreeBSD.org>2019-08-21 10:54:52 +0000
committerBjoern A. Zeeb <bz@FreeBSD.org>2019-08-21 10:54:52 +0000
commit6d7adebad52252d8c7672fb0ddc0d3f3ad1215bb (patch)
treeaec6eabd9e6e9cc05f13ecb075a0742007457078 /usr.bin
parente13ad86c678a77f16e2a9fee25acf2d67d7175e9 (diff)
downloadsrc-6d7adebad52252d8c7672fb0ddc0d3f3ad1215bb.tar.gz
src-6d7adebad52252d8c7672fb0ddc0d3f3ad1215bb.zip
gprof: disable building of a.out components
On arm64, riscv, and s390x disable building of aout components. This allows gprof to build on these architectures which never supported the legacy a.out binary format. Obtained from: s390x branch MFC after: 3 months
Notes
Notes: svn path=/head/; revision=351329
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/gprof/Makefile8
-rw-r--r--usr.bin/gprof/gprof.c7
-rw-r--r--usr.bin/gprof/gprof.h2
3 files changed, 14 insertions, 3 deletions
diff --git a/usr.bin/gprof/Makefile b/usr.bin/gprof/Makefile
index 506232597a42..28d0ffeef25c 100644
--- a/usr.bin/gprof/Makefile
+++ b/usr.bin/gprof/Makefile
@@ -2,8 +2,14 @@
# $FreeBSD$
PROG= gprof
-SRCS= gprof.c aout.c arcs.c dfn.c elf.c lookup.c hertz.c \
+SRCS= gprof.c arcs.c dfn.c elf.c lookup.c hertz.c \
printgprof.c printlist.c kernel.c
+
+.if ${MACHINE_ARCH} != "aarch64" && ${MACHINE_ARCH} != "riscv" && \
+ ${MACHINE_ARCH} != "s390x"
+SRCS+= aout.c
+CFLAGS+= -DWITH_AOUT
+.endif
FILES= gprof.flat gprof.callg
FILESDIR= ${SHAREDIR}/misc
diff --git a/usr.bin/gprof/gprof.c b/usr.bin/gprof/gprof.c
index 1821fa0bb33f..4970792f0502 100644
--- a/usr.bin/gprof/gprof.c
+++ b/usr.bin/gprof/gprof.c
@@ -160,8 +160,11 @@ main(int argc, char **argv)
* get information from the executable file.
*/
if ((Kflag && kernel_getnfile(a_outname, &defaultEs) == -1) ||
- (!Kflag && elf_getnfile(a_outname, &defaultEs) == -1 &&
- aout_getnfile(a_outname, &defaultEs) == -1))
+ (!Kflag && elf_getnfile(a_outname, &defaultEs) == -1
+#ifdef WITH_AOUT
+ && aout_getnfile(a_outname, &defaultEs) == -1
+#endif
+ ))
errx(1, "%s: bad format", a_outname);
/*
* sort symbol table.
diff --git a/usr.bin/gprof/gprof.h b/usr.bin/gprof/gprof.h
index 4e801cce21e3..6c54fbd4047e 100644
--- a/usr.bin/gprof/gprof.h
+++ b/usr.bin/gprof/gprof.h
@@ -256,7 +256,9 @@ void addarc(nltype *, nltype *, long);
bool addcycle(arctype **, arctype **);
void addlist(struct stringlist *, char *);
void alignentries(void);
+#ifdef WITH_AOUT
int aout_getnfile(const char *, char ***);
+#endif
int arccmp(arctype *, arctype *);
arctype *arclookup(nltype *, nltype *);
void asgnsamples(void);