[devel] Openjdk buid failed - undefined reference to `operator new(unsigned long)'

Evgeniy Korneechev ekorneechev на altlinux.org
Ср Янв 17 16:34:04 MSK 2018


Нашел отличие в сборке оригинальной zimbra-openjdk от openjdk в репах:

В логах сборки:
Tools summary:
...
* C Compiler:     x86_64-alt-linux-gcc (GCC) 6.3.1 20170118 (ALT-alt2) version 6.3.1 (at /usr/bin/gcc_wrapper)
* C++ Compiler:   x86_64-alt-linux-gcc (GCC) 6.3.1 20170118 (ALT-alt2) version 6.3.1 (at /usr/bin/gcc_wrapper)

А должно быть (как при сборке java-1.8.0-openjdk):
...
* C Compiler:     x86_64-alt-linux-gcc (GCC) 6.3.1 20170118 (ALT-alt2) version 6.3.1-alt2) (at /usr/bin/gcc)
* C++ Compiler:   x86_64-alt-linux-g++ (GCC) 6.3.1 20170118 (ALT-alt2) version 6.3.1-alt2) (at /usr/bin/g++)

Вопрос, как хотя бы этого добиться...

----- Исходное сообщение -----
> От: "ekorneechev" <ekorneechev на altlinux.org>
> Кому: "ALT Linux Team development discussions" <devel на lists.altlinux.org>
> Отправленные: Четверг, 28 Сентябрь 2017 г 10:16:38
> Тема: Openjdk buid failed - undefined reference to `operator new(unsigned long)'

> Всем доброго дня!
> 
> Собираю openjdk (для Zimbra), но что-то я встрял - собственно ошибка в сабже
> 
> Making adlc
> ../generated/adfiles/adlparse.o: In function `ADLParser::instr_parse()':
> ~/rpm/BUILD/openjdk-1.8.0u144b01/hotspot/src/share/vm/adlc/adlparse.cpp:153:
> undefined reference to `operator new(unsigned long)'
> ~/rpm/BUILD/openjdk-1.8.0u144b01/hotspot/src/share/vm/adlc/adlparse.cpp:286:
> undefined reference to `operator new(unsigned long)'
> ../generated/adfiles/adlparse.o: In function
> `ADLParser::adjust_set_rule(InstructForm*)':
> ~/rpm/BUILD/openjdk-1.8.0u144b01/hotspot/src/share/vm/adlc/adlparse.cpp:341:
> undefined reference to `operator new(unsigned long)'
> ~/rpm/BUILD/openjdk-1.8.0u144b01/hotspot/src/share/vm/adlc/adlparse.cpp:358:
> undefined reference to `operator new(unsigned long)'
> ~/rpm/BUILD/openjdk-1.8.0u144b01/hotspot/src/share/vm/adlc/adlparse.cpp:384:
> undefined reference to `operator new(unsigned long)'
> ../generated/adfiles/adlparse.o:~/rpm/BUILD/openjdk-1.8.0u144b01/hotspot/src/share/vm/adlc/adlparse.cpp:416:
> more undefined references to `operator new(unsigned long)' follow
> ../generated/adfiles/adlparse.o: In function
> `__static_initialization_and_destruction_0(int, int)':
> /usr/include/c++/5/iostream:74: undefined reference to
> `std::ios_base::Init::Init()'
> /usr/include/c++/5/iostream:74: undefined reference to
> `std::ios_base::Init::~Init()'
> ../generated/adfiles/adlparse.o: In function `PreHeaderForm::~PreHeaderForm()':
> ~/rpm/BUILD/openjdk-1.8.0u144b01/hotspot/src/share/vm/adlc/forms.hpp:496:
> undefined reference to `operator delete(void*)'
> 
> Соответственно пытался добавить в CFLAGS -lstdc++: (или надо в CXXFLAGS? если
> да, туда от безысходности тоже пробовал)
> говорит: configure: WARNING: Ignoring CFLAGS(-lstdc++) found in environment. Use
> --with-extra-cflags
> 
> Далее последовал совету:
> ./configure --prefix=/opt/zimbra/common '--with-extra-cflags=-O2 -g -lstdc++'
> --enable-unlimited-crypto --with-update-version=144 --with-build-number=b01
> --with-milestone=zimbra
> 
> все равно чего-то не хватает...
> 
> $ rpm -qa *++*
> gcc-c++-common-1.4.20-alt1.noarch
> gcc5-c++-5.3.1-alt4.x86_64
> libstdc++5-devel-5.3.1-alt4.x86_64
> libstdc++5-devel-static-5.3.1-alt4.x86_64
> libstdc++6-6.3.1-alt2.x86_64
> libstdc++6-devel-6.3.1-alt2.x86_64
> 
> Подскажите в чем может быть проблема то?
> PS gcc6-c++ - тоже пробовал, тож самое
> 
> 
> --
> WBR, Korneechev Evgeniy
> BaseALT/ALTLinux Team

-- 
WBR, Korneechev Evgeniy
BaseALT/ALTLinux Team


Подробная информация о списке рассылки Devel