If you set the variable WARNINGS_ARE_ERRORS to be empty, it should be sent through to all the makefiles. It's the variable WARNINGS_ARE_ERRORS that contains the option "-Werror" for hotspot compiles, and it is -Werror that makes warnings fatal.
So try: make WARNINGS_ARE_ERRORS= Not using -Werror all the time will likely let more warning errors creep into the builds, but using it means a few people get annoyed when diffenent compilers get used. But keeping all warning messages out of the build is a very good thing in my view. We need to figure out how to get these warnings fixed in the code, and not create new warnings on other platforms or with other compilers. Sometimes that is easy, sometimes it is not. -kto Douglas Felt wrote:
I'm running into multiple errors trying to build openjdk 7 on ubuntu 8.10. I downloaded the sources from http://www.java.net/download/openjdk/jdk7/promoted/b40/openjdk-7-ea-src-b40-20_nov_2008.zip as listed on http://download.java.net/openjdk/jdk7/. The problem appears to be that gcc flags are configured to map warnings to errors, and gcc 4.3 is issuing some warnings in some of the hotspot files. here's a sample (as I worked around one, I hit another, and another): -------- cc1plus: warnings being treated as errors /home/dougfelt/openjdk/bootstrap7/hotspot/src/share/vm/classfile/javaClasses.cpp: In static member function 'static char* java_lang_Throwable::print_stack_element_to_buffer(methodOopDesc*, int)': /home/dougfelt/openjdk/bootstrap7/hotspot/src/share/vm/classfile/javaClasses.cpp:869: error: format '%#x' expects type 'unsigned int', but argument 3 has type 'nmethod*' make[6]: *** [javaClasses.o] Error 1 [...] -------- cc1plus: warnings being treated as errors /home/dougfelt/openjdk/bootstrap7/hotspot/src/share/vm/prims/jvm.cpp: In function 'void jio_print(const char*)': /home/dougfelt/openjdk/bootstrap7/hotspot/src/share/vm/prims/jvm.cpp:2477: error: ignoring return value of 'ssize_t write(int, const void*, size_t)', declared with attribute warn_unused_result make[6]: *** [jvm.o] Error 1 [...] -------- cc1plus: warnings being treated as errors /home/dougfelt/openjdk/bootstrap7/hotspot/src/os/linux/vm/os_linux.cpp: In static member function 'static void os::Linux::capture_initial_stack(size_t)': /home/dougfelt/openjdk/bootstrap7/hotspot/src/os/linux/vm/os_linux.cpp:1189: error: format '%lu' expects type 'long unsigned int*', but argument 22 has type 'uintptr_t*' /home/dougfelt/openjdk/bootstrap7/hotspot/src/os/linux/vm/os_linux.cpp:1189: error: format '%lu' expects type 'long unsigned int*', but argument 23 has type 'uintptr_t*' /home/dougfelt/openjdk/bootstrap7/hotspot/src/os/linux/vm/os_linux.cpp:1189: error: format '%ld' expects type 'long int*', but argument 24 has type 'uintptr_t*' /home/dougfelt/openjdk/bootstrap7/hotspot/src/os/linux/vm/os_linux.cpp:1189: error: format '%lu' expects type 'long unsigned int*', but argument 26 has type 'uintptr_t*' /home/dougfelt/openjdk/bootstrap7/hotspot/src/os/linux/vm/os_linux.cpp:1189: error: format '%lu' expects type 'long unsigned int*', but argument 27 has type 'uintptr_t*' /home/dougfelt/openjdk/bootstrap7/hotspot/src/os/linux/vm/os_linux.cpp:1189: error: format '%lu' expects type 'long unsigned int*', but argument 28 has type 'uintptr_t*' /home/dougfelt/openjdk/bootstrap7/hotspot/src/os/linux/vm/os_linux.cpp: In static member function 'static void os::jvm_path(char*, jint)': /home/dougfelt/openjdk/bootstrap7/hotspot/src/os/linux/vm/os_linux.cpp:2027: error: ignoring return value of 'char* realpath(const char*, char*)', declared with attribute warn_unused_result /home/dougfelt/openjdk/bootstrap7/hotspot/src/os/linux/vm/os_linux.cpp:2051: error: ignoring return value of 'char* realpath(const char*, char*)', declared with attribute warn_unused_result /home/dougfelt/openjdk/bootstrap7/hotspot/src/os/linux/vm/os_linux.cpp:2062: error: ignoring return value of 'char* realpath(const char*, char*)', declared with attribute warn_unused_result /home/dougfelt/openjdk/bootstrap7/hotspot/src/os/linux/vm/os_linux.cpp: In function 'jlong slow_thread_cpu_time(Thread*, bool)': /home/dougfelt/openjdk/bootstrap7/hotspot/src/os/linux/vm/os_linux.cpp:4157: error: format '%c' expects type 'char*', but argument 3 has type 'int*' make[6]: *** [os_linux.o] Error 1 -------- cc1plus: warnings being treated as errors /home/dougfelt/openjdk/bootstrap7/hotspot/src/share/vm/utilities/ostream.cpp: In member function 'virtual void fileStream::write(const char*, size_t)': /home/dougfelt/openjdk/bootstrap7/hotspot/src/share/vm/utilities/ostream.cpp:303: error: ignoring return value of 'size_t fwrite(const void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result /home/dougfelt/openjdk/bootstrap7/hotspot/src/share/vm/utilities/ostream.cpp: In member function 'virtual void fdStream::write(const char*, size_t)': /home/dougfelt/openjdk/bootstrap7/hotspot/src/share/vm/utilities/ostream.cpp:331: error: ignoring return value of 'ssize_t write(int, const void*, size_t)', declared with attribute warn_unused_result -------- Is my version of gcc too new? The information on http://hg.openjdk.java.net/jdk7/build/raw-file/tip/README-builds.html is only current as of ubuntu 7.10, and mentions older versions of some packages. Is there a more recent list of build tools for ubuntu? gcc-4.3 seems to be an indirect dependency of eclipse. It's not clear if i can downrev it to 4.1 and use the debian eclipse install. Anyway, what should I do? Doug