LINUXTALKS.CO

Почему новые компиляторы не собирают старый код?

 

L


0

1

Почему создатели компиляторов не делают совместимости? Я софт собираю, раньше не было печали, все работало и тут на тебе!

8:55.39 /usr/include/c++/v1/string:1726:9: error: call to '__throw_out_of_range' is ambiguous
 8:55.58         _VSTD::__throw_out_of_range("basic_string");
 8:55.58         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
 8:55.58 /usr/include/c++/v1/__config:826:15: note: expanded from macro '_VSTD'
 8:55.58 #define _VSTD std

что за дела-то?? почему этот мир такой сложный-то, я не понимаю:(((

★★★☆☆
Ответ на: комментарий от crypt

А что тут скажешь. Был быдлокод, собирался старым компилятором, теперь новый компилятор осознал что это быдлокод. Остается либо ждать пока в проекте исправят быдлокод, либо пытаться вкорячить старый компилятор и собирать им. В arch я ставил несколько версий gcc в таких случаях.

JamesHolden    
★★★★★★★
Haiku / WebPositive
Ответ на: комментарий от JamesHolden

так это старая мозилла, которая 80 выпусков претерпела! разве может быть в таком старом проекте быдлокод? это ведь не рога и копыта.

В arch я ставил несколько версий gcc в таких случаях.

ну да… теперь я сутки жду, когда соберется нужный компилятор просто, чтобы попробовать) если уж завязался с компиляцией, то все становится медленней. не дают микшировать порты и бинарники.

crypt    
★★★☆☆
Последнее исправление: crypt (всего исправлений: 1)

FreeBSD / Chrome

почему этот мир такой сложный-то, я не понимаю:(((

Да когда ж вы поймете, что не мир сложный, а сраная ОйТыж-тусня отупорылила вконец. Чего ты хочешь от мира, где для подавляющего числа разрабов комп - это по сути черная коробка, понимание которого сужено не то что до знания язычка, а до знания убогого фреймворка.

Честно говоря, на одном только лоре это мусолили последние лет 10, и все равно все дальше и дальше все в тупняк скатывается.

Oberstserj    
★★★★★★
Последнее исправление: Oberstserj (всего исправлений: 1)

Ubuntu / Firefox

Ты самую важную часть ошибки пропустил. Там должно быть написано, какие определения __throw_out_of_range конфликтуют. И вообще, такого не должно быть. У неё всего одно определение с такими параметрами в:

stdexcept
265:void __throw_out_of_range(const char*__msg)
rupert    
★★★★★
Linux / Chrome
Ответ на: комментарий от rupert

так лучше?

 1:08.01 In file included from /wrkdirs/usr/ports/mail/seamonkey-cryptsme/work/seamonkey-2.53.13/freebsd_out/dist/system_wrappers/bitset:3:
 1:08.01 In file included from /usr/include/c++/v1/bitset:122:
 1:08.01 In file included from /wrkdirs/usr/ports/mail/seamonkey-cryptsme/work/seamonkey-2.53.13/freebsd_out/dist/stl_wrappers/string:52:
 1:08.01 In file included from /wrkdirs/usr/ports/mail/seamonkey-cryptsme/work/seamonkey-2.53.13/freebsd_out/dist/system_wrappers/string:3:
 1:08.01 /usr/include/c++/v1/string:1721:9: error: call to '__throw_length_error' is ambiguous
 1:08.01         _VSTD::__throw_length_error("basic_string");
 1:08.01         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
 1:08.01 /usr/include/c++/v1/__config:826:15: note: expanded from macro '_VSTD'
 1:08.01 #define _VSTD std
 1:08.01               ^
 1:08.01 /wrkdirs/usr/ports/mail/seamonkey-cryptsme/work/seamonkey-2.53.13/freebsd_out/dist/include/mozilla/throw_gcc.h:102:1: note: candidate function
 1:08.01 __throw_length_error(const char* msg)
 1:08.01 ^
 1:08.01 /usr/include/c++/v1/stdexcept:253:6: note: candidate function
 1:08.01 void __throw_length_error(const char*__msg)
 1:08.01      ^
 1:08.01 In file included from /wrkdirs/usr/ports/mail/seamonkey-cryptsme/work/seamonkey-2.53.13/comm/mailnews/base/src/MailNewsDLF.cpp:8:
 1:08.01 In file included from /wrkdirs/usr/ports/mail/seamonkey-cryptsme/work/seamonkey-2.53.13/freebsd_out/dist/include/nsIChannel.h:14:
 1:08.01 In file included from /wrkdirs/usr/ports/mail/seamonkey-cryptsme/work/seamonkey-2.53.13/freebsd_out/dist/include/nsILoadInfo.h:17:
 1:08.01 In file included from /wrkdirs/usr/ports/mail/seamonkey-cryptsme/work/seamonkey-2.53.13/freebsd_out/dist/include/js/Value.h:23:
 1:08.01 In file included from /wrkdirs/usr/ports/mail/seamonkey-cryptsme/work/seamonkey-2.53.13/freebsd_out/dist/include/js/GCAPI.h:14:
 1:08.01 In file included from /wrkdirs/usr/ports/mail/seamonkey-cryptsme/work/seamonkey-2.53.13/freebsd_out/dist/include/mozilla/TimeStamp.h:12:
 1:08.01 In file included from /wrkdirs/usr/ports/mail/seamonkey-cryptsme/work/seamonkey-2.53.13/freebsd_out/dist/stl_wrappers/ostream:52:
 1:08.01 In file included from /wrkdirs/usr/ports/mail/seamonkey-cryptsme/work/seamonkey-2.53.13/freebsd_out/dist/system_wrappers/ostream:3:
 1:08.01 In file included from /usr/include/c++/v1/ostream:138:
 1:08.01 In file included from /wrkdirs/usr/ports/mail/seamonkey-cryptsme/work/seamonkey-2.53.13/freebsd_out/dist/system_wrappers/bitset:3:
 1:08.01 In file included from /usr/include/c++/v1/bitset:122:
 1:08.01 In file included from /wrkdirs/usr/ports/mail/seamonkey-cryptsme/work/seamonkey-2.53.13/freebsd_out/dist/stl_wrappers/string:52:
 1:08.01 In file included from /wrkdirs/usr/ports/mail/seamonkey-cryptsme/work/seamonkey-2.53.13/freebsd_out/dist/system_wrappers/string:3:
 1:08.01 /usr/include/c++/v1/string:1726:9: error: call to '__throw_out_of_range' is ambiguous
 1:08.01         _VSTD::__throw_out_of_range("basic_string");
 1:08.01         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
 1:08.01 /usr/include/c++/v1/__config:826:15: note: expanded from macro '_VSTD'
 1:08.01 #define _VSTD std
 1:08.01               ^
 1:08.01 /wrkdirs/usr/ports/mail/seamonkey-cryptsme/work/seamonkey-2.53.13/freebsd_out/dist/include/mozilla/throw_gcc.h:108:1: note: candidate function
 1:08.01 __throw_out_of_range(const char* msg)
 1:08.01 ^
 1:08.01 /usr/include/c++/v1/stdexcept:264:6: note: candidate function
 1:08.01 void __throw_out_of_range(const char*__msg)
 1:08.01      ^
 1:08.84 2 errors generated.
 1:08.85 gmake[5]: *** [/wrkdirs/usr/ports/mail/seamonkey-cryptsme/work/seamonkey-2.53.13/config/rules.mk:1027: MailNewsDLF.o] Error 1
 1:08.85 gmake[4]: *** [/wrkdirs/usr/ports/mail/seamonkey-cryptsme/work/seamonkey-2.53.13/config/recurse.mk:74: comm/mailnews/base/src/target] Error 2
 1:09.74 In file included from /wrkdirs/usr/ports/mail/seamonkey-cryptsme/work/seamonkey-2.53.13/freebsd_out/mfbt/Unified_cpp_mfbt0.cpp:20:
 1:09.74 /wrkdirs/usr/ports/mail/seamonkey-cryptsme/work/seamonkey-2.53.13/mfbt/Compression.cpp:47:13: warning: 'LZ4_decompress_fast' is deprecated: This function is deprecated and unsafe. Consider using LZ4_decompress_safe() instead [-Wdeprecated-declarations]
 1:09.74   int ret = LZ4_decompress_fast(aSource, aDest, outputSizeChecked.value());
 1:09.74             ^
 1:09.74 /wrkdirs/usr/ports/mail/seamonkey-cryptsme/work/seamonkey-2.53.13/mfbt/lz4/lz4.h:753:1: note: 'LZ4_decompress_fast' has been explicitly marked deprecated here
 1:09.74 LZ4_DEPRECATED("This function is deprecated and unsafe. Consider using LZ4_decompress_safe() instead")
 1:09.74 ^
 1:09.74 /wrkdirs/usr/ports/mail/seamonkey-cryptsme/work/seamonkey-2.53.13/mfbt/lz4/lz4.h:683:39: note: expanded from macro 'LZ4_DEPRECATED'
 1:09.74 #    define LZ4_DEPRECATED(message) [[deprecated(message)]]
 1:09.74                                       ^
 1:11.63 1 warning generated.
 1:14.15 gmake[3]: *** [/wrkdirs/usr/ports/mail/seamonkey-cryptsme/work/seamonkey-2.53.13/config/recurse.mk:34: compile] Error 2
 1:14.15 gmake[2]: *** [/wrkdirs/usr/ports/mail/seamonkey-cryptsme/work/seamonkey-2.53.13/config/rules.mk:385: default] Error 2
 1:14.15 gmake[1]: *** [client.mk:119: build] Error 2
 1:14.15 34 compiler warnings present.
*** Error code 2

crypt    
★★★☆☆
Linux / Chrome
Ответ на: комментарий от crypt

Скорее всего seamonkey скопировали себе код из llvm-ного libc++ в предположении, что он будет собираться с помощью g++ и libstdc++. А ты его собираешь с помощью clang++/libc++, поэтому и конфликт.

Кстати, throw_gcc.h как бы указывает на то, что надо бы собирать с gcc.

rupert    
★★★★★
Linux / Chrome
Ответ на: комментарий от rupert

даже не понятно, зачем копировать стандартную библиотеку, тем более не гнутую. может, это те, кто портировали на FreeBSD… а ведь полгода назад еще как-то собиралось…

я сходил к автору порта и скачал обновленную инструкцию для сборки. так что как-то оно у меня снова работает и ладно.

crypt    
★★★☆☆
FreeBSD / Chrome
Ответ на: комментарий от rupert

вот опять похожая проблема. всего лишь хочу обновить chrome. что это значит?

FAILED: obj/ui/base/wayland/color_manager_util/color_manager_util.o 
c++ -MMD -MF obj/ui/base/wayland/color_manager_util/color_manager_util.o.d -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -D__STDC_CONSTANT_MACROS -D
__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -DNDEBUG -DNVALGRIND
 -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_56 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_56 -DBASE_USE_PERFETTO_CLIENT_LIBRARY=
1 -DUSE_SYSTEM_LIBEVENT=1 -DSK_ENABLE_SKSL -DSK_UNTIL_CRBUG_1187654_IS_FIXED -DSK_USER_CONFIG_HEADER=\"../../skia/config/SkUserConfig.h\" -DSK_WIN_FONTMGR_NO_S
IMULATIONS -DSK_DISABLE_LEGACY_SKSURFACE_METHODS -DSK_DISABLE_LEGACY_GRAPHITE_IMAGE_FACTORIES -DSK_DISABLE_LEGACY_GRAPHITE_IMAGE_METHODS -DSK_DISABLE_LEGACY_SKSURFACE_FACTORIES -DSK_DISABLE_LEGACY_SKSURFACE_FLUSH -DSK_DISABLE_LEGACY_SKSURFACE_AS_IMAGE -DSK_DISABLE_LEGACY_SKSURFACE_DISPLAYLIST -DSK_CODEC_DECODES_JPEG -DSK_CODEC_DECODES_PNG -DSK_CODEC_DECODES_WEBP -DSK_ENCODE_JPEG -DSK_ENCODE_PNG -DSK_ENCODE_WEBP -DSK_HAS_WUFFS_LIBRARY -DSK_GANESH -DSK_GPU_WORKAROUNDS_HEADER=\"gpu/config/gpu_driver_bug_workaround_autogen.h\" -DSK_GL -DSK_VULKAN=1 -DSK_GRAPHITE -DVK_USE_PLATFORM_XCB_KHR -DVK_USE_PLATFORM_WAYLAND_KHR -I../.. -Igen -I../../third_party/perfetto/include -Igen/third_party/perfetto/build_config -Igen/third_party/perfetto -Igen/shim_headers/libevent_shim -Igen/shim_headers/icui18n_shim -Igen/shim_headers/icuuc_shim -Igen/shim_headers/libpng_shim -Igen/shim_headers/libwebp_shim -I../../third_party/abseil-cpp -I../../third_party/boringssl/src/include -I../../third_party/protobuf/src -Igen/protoc_out -Igen/components/exo/wayland/protocol -I../../third_party/wayland/include -I../../third_party/wayland/include/src -I../../third_party/wayland/src/cursor -I../../third_party/wayland/src/egl -I../../third_party/wayland/src/src -I/usr/local/include/libepoll-shim -Igen/third_party/wayland/src/protocol -I../../third_party/skia -Igen/third_party/skia -I../../third_party/wuffs/src/release/c -I../../third_party/vulkan/include -I../../third_party/vulkan-deps/vulkan-headers/src/include -Wall -Wextra -Wimplicit-fallthrough -Wextra-semi -Wunreachable-code-aggressive -Wthread-safety -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wloop-analysis -Wno-unneeded-internal-declaration -Wenum-compare-conditional -Wno-ignored-pragma-optimize -Wshadow -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -m64 -msse3 -Xclang -fdebug-compilation-dir -Xclang . -no-canonical-prefixes -ftrivial-auto-var-init=pattern -O2 -fdata-sections -ffunction-sections -fno-unique-section-names -fno-omit-frame-pointer -g0 -fprofile-use=../../chrome/build/pgo_profiles/chrome-linux-5845-1692121706-2581e1554c78da1b495c99d060301e969463dc3a.profdata -Wno-profile-instr-unprofiled -Wno-profile-instr-out-of-date -Wno-backend-plugin -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include -DPROTOBUF_ALLOW_DEPRECATED=1 -Wno-redundant-parens -std=c++20 -Wno-trigraphs -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include  -c ../../ui/base/wayland/color_manager_util.cc -o obj/ui/base/wayland/color_manager_util/color_manager_util.o
In file included from ../../ui/base/wayland/color_manager_util.cc:5:
../../ui/base/wayland/color_manager_util.h:55:7: error: no matching constructor for initialization of 'ui::wayland::PrimaryVersion'
      PrimaryVersion(gfx::ColorSpace::PrimaryID::SMPTE170M,
      ^              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../ui/base/wayland/color_manager_util.h:33:8: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided
struct PrimaryVersion {
       ^
../../ui/base/wayland/color_manager_util.h:33:8: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 2 were provided
../../ui/base/wayland/color_manager_util.h:33:8: note: candidate constructor (the implicit default constructor) not viable: requires 0 arguments, but 2 were provided
../../ui/base/wayland/color_manager_util.h:58:7: error: no matching constructor for initialization of 'ui::wayland::PrimaryVersion'
      PrimaryVersion(gfx::ColorSpace::PrimaryID::BT470BG,
      ^              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../ui/base/wayland/color_manager_util.h:33:8: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided
struct PrimaryVersion {
       ^
../../ui/base/wayland/color_manager_util.h:33:8: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 2 were provided
../../ui/base/wayland/color_manager_util.h:33:8: note: candidate constructor (the implicit default constructor) not viable: requires 0 arguments, but 2 were provided
../../ui/base/wayland/color_manager_util.h:61:7: error: no matching constructor for initialization of 'ui::wayland::PrimaryVersion'
      PrimaryVersion(gfx::ColorSpace::PrimaryID::SMPTE170M,
      ^              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../ui/base/wayland/color_manager_util.h:33:8: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided
struct PrimaryVersion {
       ^
../../ui/base/wayland/color_manager_util.h:33:8: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 2 were provided

crypt    
★★★☆☆
Последнее исправление: crypt (всего исправлений: 1)

FreeBSD / Chrome
Ответ на: комментарий от crypt

всего лишь хочу обновить chrome. что это значит?

Это значит, что ты слишком ламер для сборки пакетов. Не обижайся :)

Есть же дружелюбные дистры, где «обновить chrome» не требует компилирования и прочего красноглазия, а сборкой за тебя занимаются мейнтейнеры

Ну а если пишешь в спортлото, то лучше писать в правильное

ThePlayerZero    
★★
Последнее исправление: ThePlayerZero (всего исправлений: 1)

Android / Chrome