aboutsummaryrefslogtreecommitdiff
path: root/libjava/java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/java')
-rw-r--r--libjava/java/lang/natSystem.cc18
1 files changed, 15 insertions, 3 deletions
diff --git a/libjava/java/lang/natSystem.cc b/libjava/java/lang/natSystem.cc
index f146f3e..268c1cc 100644
--- a/libjava/java/lang/natSystem.cc
+++ b/libjava/java/lang/natSystem.cc
@@ -53,7 +53,6 @@ details. */
#define SystemClass _CL_Q34java4lang6System
extern java::lang::Class SystemClass;
-extern property_pair *_Jv_Environment_Properties;
#if defined (ECOS)
@@ -336,8 +335,8 @@ java::lang::System::init_properties (void)
while (buf_r != NULL)
{
- int r = getpwuid_adaptor
- (getpwuid_r, user_id, &pwd_r, buf_r, len_r, &pwd_entry);
+ int r = getpwuid_adaptor (getpwuid_r, user_id, &pwd_r,
+ buf_r, len_r, &pwd_entry);
if (r == 0)
break;
else if (r != ERANGE)
@@ -379,6 +378,19 @@ java::lang::System::init_properties (void)
free (buffer);
#endif
+ // Set some properties according to whatever was compiled in with
+ // `-D'.
+ for (int i = 0; _Jv_Compiler_Properties[i]; ++i)
+ {
+ const char *s, *p;
+ // Find the `='.
+ for (s = p = _Jv_Compiler_Properties[i]; *s && *s != '='; ++s)
+ ;
+ jstring name = JvNewStringLatin1 (p, s - p);
+ jstring val = JvNewStringLatin1 (*s == '=' ? s + 1 : s);
+ properties->put (name, val);
+ }
+
// Set the system properties from the user's environment.
if (_Jv_Environment_Properties)
{