svn commit: r209594 - projects/ppc64/usr.sbin/config
Nathan Whitehorn
nwhitehorn at FreeBSD.org
Tue Jun 29 20:43:40 UTC 2010
Author: nwhitehorn
Date: Tue Jun 29 20:43:39 2010
New Revision: 209594
URL: http://svn.freebsd.org/changeset/base/209594
Log:
Add some TBEMD-ness to config(8) in preparation for eliminating
sys/powerpc64. This adds a -m option to config to allow things like
make universe to know what MACHINE_ARCH applies to a given config file,
and fakes MACHINE_ARCH as an option if it is present in the
options.MACHINE file to allow architecture-dependent conditional
compilation.
This is under review by imp@ before merging to HEAD.
Modified:
projects/ppc64/usr.sbin/config/config.8
projects/ppc64/usr.sbin/config/configvers.h
projects/ppc64/usr.sbin/config/main.c
projects/ppc64/usr.sbin/config/mkoptions.c
Modified: projects/ppc64/usr.sbin/config/config.8
==============================================================================
--- projects/ppc64/usr.sbin/config/config.8 Tue Jun 29 20:42:47 2010 (r209593)
+++ projects/ppc64/usr.sbin/config/config.8 Tue Jun 29 20:43:39 2010 (r209594)
@@ -78,6 +78,9 @@ Note that
does not append
.Ar SYSTEM_NAME
to the directory given.
+.It Fl m
+Print the MACHINE and MACHINE_ARCH values for this
+kernel and exit.
.It Fl g
Configure a system for debugging.
.It Fl x Ar kernel
Modified: projects/ppc64/usr.sbin/config/configvers.h
==============================================================================
--- projects/ppc64/usr.sbin/config/configvers.h Tue Jun 29 20:42:47 2010 (r209593)
+++ projects/ppc64/usr.sbin/config/configvers.h Tue Jun 29 20:43:39 2010 (r209594)
@@ -49,5 +49,5 @@
*
* $FreeBSD$
*/
-#define CONFIGVERS 600009
+#define CONFIGVERS 600010
#define MAJOR_VERS(x) ((x) / 100000)
Modified: projects/ppc64/usr.sbin/config/main.c
==============================================================================
--- projects/ppc64/usr.sbin/config/main.c Tue Jun 29 20:42:47 2010 (r209593)
+++ projects/ppc64/usr.sbin/config/main.c Tue Jun 29 20:43:39 2010 (r209594)
@@ -110,13 +110,18 @@ main(int argc, char **argv)
char *p;
char xxx[MAXPATHLEN];
char *kernfile;
+ int printmachine;
+ printmachine = 0;
kernfile = NULL;
- while ((ch = getopt(argc, argv, "Cd:gpVx:")) != -1)
+ while ((ch = getopt(argc, argv, "Cd:gmpVx:")) != -1)
switch (ch) {
case 'C':
filebased = 1;
break;
+ case 'm':
+ printmachine = 1;
+ break;
case 'd':
if (*destdir == '\0')
strlcpy(destdir, optarg, sizeof(destdir));
@@ -171,13 +176,6 @@ main(int argc, char **argv)
strlcat(destdir, PREFIX, sizeof(destdir));
}
- p = path((char *)NULL);
- if (stat(p, &buf)) {
- if (mkdir(p, 0777))
- err(2, "%s", p);
- } else if (!S_ISDIR(buf.st_mode))
- errx(EXIT_FAILURE, "%s isn't a directory", p);
-
SLIST_INIT(&cputype);
SLIST_INIT(&mkopt);
SLIST_INIT(&opt);
@@ -207,6 +205,19 @@ main(int argc, char **argv)
}
checkversion();
+ if (printmachine) {
+ printf("%s\t%s\n",machinename,machinearch);
+ exit(0);
+ }
+
+ /* Make compile directory */
+ p = path((char *)NULL);
+ if (stat(p, &buf)) {
+ if (mkdir(p, 0777))
+ err(2, "%s", p);
+ } else if (!S_ISDIR(buf.st_mode))
+ errx(EXIT_FAILURE, "%s isn't a directory", p);
+
/*
* make symbolic links in compilation directory
* for "sys" (to make genassym.c work along with #include <sys/xxx>)
Modified: projects/ppc64/usr.sbin/config/mkoptions.c
==============================================================================
--- projects/ppc64/usr.sbin/config/mkoptions.c Tue Jun 29 20:42:47 2010 (r209593)
+++ projects/ppc64/usr.sbin/config/mkoptions.c Tue Jun 29 20:43:39 2010 (r209594)
@@ -94,6 +94,20 @@ options(void)
SLIST_INSERT_HEAD(&opt, op, op_next);
read_options();
+
+ /* Fake the value of MACHINE_ARCH as an option if necessary */
+ SLIST_FOREACH(ol, &otab, o_next) {
+ if (strcasecmp(ol->o_name, machinearch) != 0)
+ continue;
+
+ op = (struct opt *)calloc(1, sizeof(*op));
+ if (op == NULL)
+ err(EXIT_FAILURE, "calloc");
+ op->op_name = ns(ol->o_name);
+ SLIST_INSERT_HEAD(&opt, op, op_next);
+ break;
+ }
+
SLIST_FOREACH(op, &opt, op_next) {
SLIST_FOREACH(ol, &otab, o_next) {
if (eq(op->op_name, ol->o_name) &&
More information about the svn-src-projects
mailing list