diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2019-08-28 20:39:32 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2019-08-28 20:39:32 +0000 |
commit | 32b1d51f16fe56b34e979fcfba4bc74dbd3592a9 (patch) | |
tree | cd54b1786061eb18e64ce26e6392df3096b5ba35 /libgo/runtime/getncpu-linux.c | |
parent | c980510a5ab79614fcbaf5f411b1273dc9a8c7ca (diff) | |
download | gcc-32b1d51f16fe56b34e979fcfba4bc74dbd3592a9.zip gcc-32b1d51f16fe56b34e979fcfba4bc74dbd3592a9.tar.gz gcc-32b1d51f16fe56b34e979fcfba4bc74dbd3592a9.tar.bz2 |
runtime: move osinit to Go
This is a step toward updating libgo to 1.13. This adds the 1.13
version of the osinit function to Go code, and removes the
corresponding code from the C runtime. This should simplify future updates.
Some additional 1.13 code was brought in to simplify this change.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/191717
From-SVN: r275010
Diffstat (limited to 'libgo/runtime/getncpu-linux.c')
-rw-r--r-- | libgo/runtime/getncpu-linux.c | 36 |
1 files changed, 0 insertions, 36 deletions
diff --git a/libgo/runtime/getncpu-linux.c b/libgo/runtime/getncpu-linux.c deleted file mode 100644 index de6606f..0000000 --- a/libgo/runtime/getncpu-linux.c +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -#include <features.h> -#include <sched.h> - -// CPU_COUNT is only provided by glibc 2.6 or higher -#ifndef CPU_COUNT -#define CPU_COUNT(set) _CPU_COUNT((unsigned int *)(set), sizeof(*(set))/sizeof(unsigned int)) -static int _CPU_COUNT(unsigned int *set, size_t len) { - int cnt; - - cnt = 0; - while (len--) - cnt += __builtin_popcount(*set++); - return cnt; -} -#endif - -#include "runtime.h" -#include "defs.h" - -int32 -getproccount(void) -{ - cpu_set_t set; - int32 r, cnt; - - cnt = 0; - r = sched_getaffinity(0, sizeof(set), &set); - if(r == 0) - cnt += CPU_COUNT(&set); - - return cnt ? cnt : 1; -} |