Remove cpu_feats from kernel-features.h (XCC)
authorBarret Rhoden <brho@cs.berkeley.edu>
Fri, 11 Mar 2016 14:55:21 +0000 (09:55 -0500)
committerBarret Rhoden <brho@cs.berkeley.edu>
Fri, 11 Mar 2016 20:59:59 +0000 (15:59 -0500)
It turns out that glibc doesn't need its own copy of the cpu_feats, and it
can just include parlib's.  It may be that some code in glibc won't be
able to include parlib files.  If that's the case, and those files need
cpu_feats, then we can revisit this.

This popped up as a problem when a file in glibc included both
kernel-features. and parlib/cpu_feat.h.

Rebuild glibc if you want.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/kernel-features.h
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/x86_64/tls.h

index b38c032..ac36404 100644 (file)
@@ -1,25 +1,4 @@
-/* Copyright (c) 2016 Google Inc.
- * Barret Rhoden <brho@cs.berkeley.edu>
- * See LICENSE for details.
- *
- * Glibc uses this header to set a bunch of #defines to show what is supported
- * on a particular kernel version.  They set things like __ASSUME_AT_RANDOM.
- *
- * On Akaros, we'll eventually set those too.  This is also a good place for
- * exporting all of the cpu feature detection to glibc.
- *
- * Note that this file is only included within glibc itself; it won't appear in
- * the sysroot.  Use parlib/cpu_feat.h for that. */
+/* Glibc uses this header to set a bunch of #defines to show what is supported
+ * on a particular kernel version.  They set things like __ASSUME_AT_RANDOM. */
 
 #pragma once
-
-#include <ros/procinfo.h>
-
-static inline bool cpu_has_feat(int feature)
-{
-       size_t bits_per_long = sizeof(unsigned long) * 8;
-       unsigned long *cpu_feats = __proc_global_info.cpu_feats;
-
-       return (cpu_feats[feature / bits_per_long] &
-               (1UL << (feature % bits_per_long))) != 0;
-}
index f2bb363..c96a54c 100644 (file)
@@ -32,6 +32,7 @@
 #include <ros/procinfo.h>
 #include <ros/procdata.h>
 #include <ros/arch/mmu.h>
+#include <parlib/cpu_feat.h>
 
 /* Replacement type for __m128 since this file is included by ld.so,
    which is compiled with -mno-sse.  It must not change the alignment