ubuntu上编译hotspot遇到的问题

ubuntu版本14.04

1.内核版本不支持

“*** This OS is not supported:" 'uname -a'; exit 1;

解决办法

修改hotspot/make/linux/Makefile

(1)SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 2.7% 3.7%

或者

(2)注释掉

#ifeq ($(DISABLE_HOTSPOT_OS_VERSION_CHECK)$(EMPTY_IF_NOT_SUPPORTED),)
#   $(QUIETLY) >&2 echo "*** This OS is not supported:" `uname -a`; exit 1;
#endif

2.各种.h找不到

解决办法

为bits,sys,gnu建立软链

sudo ln -s /usr/include/x86_64-linux-gnu/gun /usr/include/gnu

3.64位的ubuntu找不到32位的文件

/usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file or directory

解决办法

sudo apt-get install g++-multilib

4. cc1plus: error: the "stabs" debug format cannot be used with pre-compiled headers [-Werror=deprecated]

build的JVM肯定是32位的。
要加上ARCH_DATA_MODEL=64 来build 64位的

5.头文件宏定义冲突

/home/mengxiansen/openjdk/openjdk/hotspot/src/share/vm/runtime/interfaceSupport.hpp:430:0: error: "__LEAF" redefined [-Werror]

 #define __LEAF(result_type, header) 

/usr/include/x86_64-linux-gnu/sys/cdefs.h:42:0: note: this is the location of the previous definition
 #  define __LEAF , __leaf__

在interfaceSupport.hpp增加

#ifdef __LEAF
#undef __LEAF

#define __LEAF(result_type, header)                                  \
  TRACE_CALL(result_type, header)                                    \
  debug_only(NoHandleMark __hm;)                                     \
  /* begin of body */
#endif


6.cc1plus: warnings being treated as errors,

主要原因是 Makefile 里面 gcc 的参数多了一个"-Werror",找到出错的make文件夹,看Make文件里面有没有“-Werror",如果有的话将其删除。重新编译即可

7.Unable to load native library: /home/mengxiansen/program/java/jdk1.7.0_10/jre/lib/amd64/libjava.so: symbol JVM_SetNativeThreadName, version SUNWprivate_1.1 not defined in file libjvm.so with link time reference

使用Oracle的jdk6代替jdk7编译openjdk

编译成功:

cd linux_amd64_compiler2/jvmg && ./test_gamma
openjdk full version "1.6.0-internal-chenkui_06_jan_2013_19_12-b00"
openjdk version "1.6.0-internal"
OpenJDK Runtime Environment (build 1.6.0-internal-chenkui_06_jan_2013_19_12-b00)
OpenJDK 64-Bit Server VM (build 21.0-b17-internal-jvmg, mixed mode)


 1. A1 B5 C8 D6 E3 F7 G2 H4 
 2. A1 B6 C8 D3 E7 F4 G2 H5 
 3. A1 B7 C4 D6 E8 F2 G5 H3 
 4. A1 B7 C5 D8 E2 F4 G6 H3 
 5. A2 B4 C6 D8 E3 F1 G7 H5 
 6. A2 B5 C7 D1 E3 F8 G6 H4 
 7. A2 B5 C7 D4 E1 F8 G6 H3 
 8. A2 B6 C1 D7 E4 F8 G3 H5 
 9. A2 B6 C8 D3 E1 F4 G7 H5 
10. A2 B7 C3 D6 E8 F5 G1 H4 
11. A2 B7 C5 D8 E1 F4 G6 H3 
12. A2 B8 C6 D1 E3 F5 G7 H4 
13. A3 B1 C7 D5 E8 F2 G4 H6 
14. A3 B5 C2 D8 E1 F7 G4 H6 
15. A3 B5 C2 D8 E6 F4 G7 H1 
16. A3 B5 C7 D1 E4 F2 G8 H6 
17. A3 B5 C8 D4 E1 F7 G2 H6 
18. A3 B6 C2 D5 E8 F1 G7 H4 
19. A3 B6 C2 D7 E1 F4 G8 H5 
20. A3 B6 C2 D7 E5 F1 G8 H4 
21. A3 B6 C4 D1 E8 F5 G7 H2 
22. A3 B6 C4 D2 E8 F5 G7 H1 
23. A3 B6 C8 D1 E4 F7 G5 H2 
24. A3 B6 C8 D1 E5 F7 G2 H4 
25. A3 B6 C8 D2 E4 F1 G7 H5 
26. A3 B7 C2 D8 E5 F1 G4 H6 
27. A3 B7 C2 D8 E6 F4 G1 H5 
28. A3 B8 C4 D7 E1 F6 G2 H5 
29. A4 B1 C5 D8 E2 F7 G3 H6 
30. A4 B1 C5 D8 E6 F3 G7 H2 
31. A4 B2 C5 D8 E6 F1 G3 H7 
32. A4 B2 C7 D3 E6 F8 G1 H5 
33. A4 B2 C7 D3 E6 F8 G5 H1 
34. A4 B2 C7 D5 E1 F8 G6 H3 
35. A4 B2 C8 D5 E7 F1 G3 H6 
36. A4 B2 C8 D6 E1 F3 G5 H7 
37. A4 B6 C1 D5 E2 F8 G3 H7 
38. A4 B6 C8 D2 E7 F1 G3 H5 
39. A4 B6 C8 D3 E1 F7 G5 H2 
40. A4 B7 C1 D8 E5 F2 G6 H3 
41. A4 B7 C3 D8 E2 F5 G1 H6 
42. A4 B7 C5 D2 E6 F1 G3 H8 
43. A4 B7 C5 D3 E1 F6 G8 H2 
44. A4 B8 C1 D3 E6 F2 G7 H5 
45. A4 B8 C1 D5 E7 F2 G6 H3 
46. A4 B8 C5 D3 E1 F7 G2 H6 
47. A5 B1 C4 D6 E8 F2 G7 H3 
48. A5 B1 C8 D4 E2 F7 G3 H6 
49. A5 B1 C8 D6 E3 F7 G2 H4 
50. A5 B2 C4 D6 E8 F3 G1 H7 
51. A5 B2 C4 D7 E3 F8 G6 H1 
52. A5 B2 C6 D1 E7 F4 G8 H3 
53. A5 B2 C8 D1 E4 F7 G3 H6 
54. A5 B3 C1 D6 E8 F2 G4 H7 
55. A5 B3 C1 D7 E2 F8 G6 H4 
56. A5 B3 C8 D4 E7 F1 G6 H2 
57. A5 B7 C1 D3 E8 F6 G4 H2 
58. A5 B7 C1 D4 E2 F8 G6 H3 
59. A5 B7 C2 D4 E8 F1 G3 H6 
60. A5 B7 C2 D6 E3 F1 G4 H8 
61. A5 B7 C2 D6 E3 F1 G8 H4 
62. A5 B7 C4 D1 E3 F8 G6 H2 
63. A5 B8 C4 D1 E3 F6 G2 H7 
64. A5 B8 C4 D1 E7 F2 G6 H3 
65. A6 B1 C5 D2 E8 F3 G7 H4 
66. A6 B2 C7 D1 E3 F5 G8 H4 
67. A6 B2 C7 D1 E4 F8 G5 H3 
68. A6 B3 C1 D7 E5 F8 G2 H4 
69. A6 B3 C1 D8 E4 F2 G7 H5 
70. A6 B3 C1 D8 E5 F2 G4 H7 
71. A6 B3 C5 D7 E1 F4 G2 H8 
72. A6 B3 C5 D8 E1 F4 G2 H7 
73. A6 B3 C7 D2 E4 F8 G1 H5 
74. A6 B3 C7 D2 E8 F5 G1 H4 
75. A6 B3 C7 D4 E1 F8 G2 H5 
76. A6 B4 C1 D5 E8 F2 G7 H3 
77. A6 B4 C2 D8 E5 F7 G1 H3 
78. A6 B4 C7 D1 E3 F5 G2 H8 
79. A6 B4 C7 D1 E8 F2 G5 H3 
80. A6 B8 C2 D4 E1 F7 G5 H3 
81. A7 B1 C3 D8 E6 F4 G2 H5 
82. A7 B2 C4 D1 E8 F5 G3 H6 
83. A7 B2 C6 D3 E1 F4 G8 H5 
84. A7 B3 C1 D6 E8 F5 G2 H4 
85. A7 B3 C8 D2 E5 F1 G6 H4 
86. A7 B4 C2 D5 E8 F1 G3 H6 
87. A7 B4 C2 D8 E6 F1 G3 H5 
88. A7 B5 C3 D1 E6 F8 G2 H4 
89. A8 B2 C4 D1 E7 F5 G3 H6 
90. A8 B2 C5 D3 E1 F7 G4 H6 
91. A8 B3 C1 D6 E2 F5 G7 H4 
92. A8 B4 C1 D3 E6 F2 G7 H5 

你可能感兴趣的:(Java)