[PATCH] PR58669: does not detect all cpu cores/threads

Andrew <[email protected]> Fri, 18 Oct 2013 02:15:42 +0100
Newsgroups gmane.comp.gcc.java.patches,gmane.comp.gcc.patches
Message-ID <[email protected]>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58669

Testing:

$ /usr/lib/jvm/icedtea-6/bin/java TestProcessors
Processors: 8

$ /usr/lib/jvm/gcj-jdk/bin/java -version
java version "1.5.0"
gij (GNU libgcj) version 4.8.1
$ /usr/lib/jvm/gcj-jdk/bin/java TestProcessors
Processors: 1

$ /home/andrew/build/gcj/bin/gij -version
java version "1.5.0"
gij (GNU libgcj) version 4.9.0 20131013 (experimental) [trunk revision 203508]
$ /home/andrew/build/gcj/bin/gij TestProcessors
Processors: 8

ChangeLog:

2013-10-12  Andrew John Hughes  <[email protected]>

	* java/lang/natRuntime.cc:
	(availableProcessors()): Implement.
	Fixes PR gcc/58669.

Ok for trunk and 4.8?
-- 
Andrew :)

Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)

PGP Key: 248BDC07 (https://keys.indymedia.org/)
Fingerprint = EC5A 1F5E C0AD 1D15 8F1F  8F91 3B96 A578 248B DC07
pr58669.patch (text/x-diff, 634 B)
Index: libjava/java/lang/natRuntime.cc
===================================================================
--- libjava/java/lang/natRuntime.cc	(revision 203508)
+++ libjava/java/lang/natRuntime.cc	(working copy)
@@ -48,6 +48,10 @@
 #include <langinfo.h>
 #endif
 
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
 
 
 #ifdef USE_LTDL
@@ -303,8 +307,15 @@
 jint
 java::lang::Runtime::availableProcessors (void)
 {
-  // FIXME: find the real value.
-  return 1;
+  long procs = -1;
+
+#ifdef HAVE_UNISTD_H
+  procs = sysconf(_SC_NPROCESSORS_ONLN);
+#endif
+
+  if (procs == -1)
+    return 1;
+  return (jint) procs;
 }
 
 jstring
signature.asc (application/pgp-signature, 836 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.20 (GNU/Linux)

iQIcBAEBCgAGBQJSYIu9AAoJEDuWpXgki9wHP1EP/iT3yGhWzOMnUSCX5UUf/n4N
lfhoD2Kmq8JWPH9VqYY2SK8n3BsYyrgSThsNgpcHqG+fBrMn0za9WMhpEEfKE8kv
PAvx9QKcLiV03KHjkqyx/DxBE6zxqPjVaPQmuwhzkNSuhGeSyE5bgy7P9huXeSrE
wMee/RuEcSFAHN7Z7Fytt3hX0Qx0uX8CmhUwL52l398wo9VOQmdRNckInXCaJ6Wg
mshYO3BROio+c6n5fipxpIDSveuan1KRP+RH5Xoq/YCqBwOT2QyGDnxvwTIrqRP0
d1f98ENPuGt1KPh/SFVnl6YkcZnyGgNBWqZMNk3cYkiE7/mAmIDYoOoo4wq6dUId
iXpx/+litC1eD3HeJWAEphzpDkT9bqVbBz85+QwzzggTlfzKwcOjaIBAm9QZyJDp
RBYWDzzOODI0gutLBaIBrl4DLIv2gYngWfYLDDZkD3K0I+0xWyV2MtqLPF5GvYOU
C0st2nG6cHzQRtNiU/gN4K3ASB4ZHK5nlL1r1WqjGBW4i3d43rA9fCT0CeYSSSD6
lZF0rJmY/cJik4e0uveCjwflPuRXTiceyYBFj0IJI5bd18vWR880Z0pGK3hWcrwm
HS4Da/JQjf3UB1Oc0O/tlkhsSjnll8k2QwQ8NzXdzkZpMZd1TqE4OShUbyz4qu7C
78yRhXGHMqwTA6cvXkt4
=dreJ
-----END PGP SIGNATURE-----