aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/uathload
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2016-03-15 04:42:37 +0000
committerWarner Losh <imp@FreeBSD.org>2016-03-15 04:42:37 +0000
commit486607d0b6c5d6f72143d6f55493f25d2e932eb2 (patch)
treecf8df1c782df55c5bd1123f20c0ae86b1c9d035a /usr.sbin/uathload
parentdd923e0c4aa091bd67c863b4c4c51b37c163b1e2 (diff)
downloadsrc-486607d0b6c5d6f72143d6f55493f25d2e932eb2.tar.gz
src-486607d0b6c5d6f72143d6f55493f25d2e932eb2.zip
Just install ar5523.bin into /usr/share/firmware and stop compiling it
in. Differential Review: https://reviews.freebsd.org/D5639
Notes
Notes: svn path=/head/; revision=296889
Diffstat (limited to 'usr.sbin/uathload')
-rw-r--r--usr.sbin/uathload/Makefile22
-rw-r--r--usr.sbin/uathload/uathload.c28
2 files changed, 16 insertions, 34 deletions
diff --git a/usr.sbin/uathload/Makefile b/usr.sbin/uathload/Makefile
index 949f800ee138..f8b26a43b439 100644
--- a/usr.sbin/uathload/Makefile
+++ b/usr.sbin/uathload/Makefile
@@ -3,28 +3,14 @@
PROG= uathload
MAN= uathload.8
-SRCS= uathload.c ar5523.bin
+SRCS= uathload.c
+FILES= ar5523.bin
+FILESDIR= ${SHAREDIR}/firmware
+FILESMODE= 444
CLEANFILES= ar5523.bin
-# It's hard to tag ar5523.o with the proper gnu note saying that it has a
-# non-executable stack, so ld doesn't properly mark his executable as
-# not having an executable stack. Mark it explicitly, but only for those
-# platforms that support his feature (otherwise signals don't work).
-# Note: Newer versions of ld than is in the tree ignore -z.
-.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpc64"
-LDFLAGS+= -Wl,-z,noexecstack
-.endif
-
-# The conversion from .bin to .o doesn't always produce a pedantically correct
-# .o's. And it doesn't matter, so turn off the mismatch warnings since it is
-# pure data. On mips64 here's no easy way to produce a proper .o.
-LDFLAGS+= -Wl,--no-warn-mismatch
-
ar5523.bin: ${.CURDIR}/../../sys/contrib/dev/uath/ar5523.bin.uu
uudecode -p ${.CURDIR}/../../sys/contrib/dev/uath/ar5523.bin.uu > ${.TARGET}
-ar5523.o: ar5523.bin
- ${LD} -b binary -d -warn-common -r -d -o ${.TARGET} ar5523.bin
-
.include <bsd.prog.mk>
diff --git a/usr.sbin/uathload/uathload.c b/usr.sbin/uathload/uathload.c
index 64ae6618708a..ba2258f101b8 100644
--- a/usr.sbin/uathload/uathload.c
+++ b/usr.sbin/uathload/uathload.c
@@ -140,23 +140,19 @@ main(int argc, char *argv[])
if (argc > 1)
usage();
- if (argc == 1) {
+ if (argc == 1)
fwname = argv[0];
- fw = open(fwname, O_RDONLY, 0);
- if (fw < 0)
- err(-1, "open(%s)", fwname);
- if (fstat(fw, &sb) < 0)
- err(-1, "fstat(%s)", fwname);
- txdata = mmap(NULL, sb.st_size, PROT_READ, MAP_PRIVATE, fw, 0);
- if (txdata == MAP_FAILED)
- err(-1, "mmap(%s)", fwname);
- len = sb.st_size;
- } else {
- fwname = "ar5523.bin (builtin)";
- fw = -1;
- txdata = &_binary_ar5523_bin_start;
- len = &_binary_ar5523_bin_end - &_binary_ar5523_bin_start;
- }
+ else
+ fwname = "/usr/share/firmware/ar5523.bin";
+ fw = open(fwname, O_RDONLY, 0);
+ if (fw < 0)
+ err(-1, "open(%s)", fwname);
+ if (fstat(fw, &sb) < 0)
+ err(-1, "fstat(%s)", fwname);
+ txdata = mmap(NULL, sb.st_size, PROT_READ, MAP_PRIVATE, fw, 0);
+ if (txdata == MAP_FAILED)
+ err(-1, "mmap(%s)", fwname);
+ len = sb.st_size;
/* XXX verify device is an AR5005 part */
if (getdevname(devname, msgdev, datadev))
err(-1, "getdevname error");