deemru / Chromium-Gost

Chromium с поддержкой алгоритмов ГОСТ
https://www.cryptopro.ru/forum2/default.aspx?g=posts&t=9991
MIT License
394 stars 43 forks source link

Не собирается на aarch64 #10

Closed mikhailnov closed 9 months ago

mikhailnov commented 4 years ago

На, например, aarch64:

[6265/42875] CXX obj/third_party/boringssl/boringssl/gostssl.o
FAILED: obj/third_party/boringssl/boringssl/gostssl.o 
clang++ -MMD -MF obj/third_party/boringssl/boringssl/gostssl.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_LIBCPP_ABI_UNSTABLE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_ENABLE_NODISCARD -DCR_LIBCXX_REVISION=375504 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DBORINGSSL_ALLOW_CXX_RUNTIME -DBORINGSSL_IMPLEMENTATION -DBORINGSSL_NO_STATIC_INITIALIZER -DOPENSSL_SMALL -D_XOPEN_SOURCE=700 -I../.. -Igen -I../../third_party/boringssl/src/include -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -funwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -no-canonical-prefixes -O2 -fno-ident -fdata-sections -ffunction-sections -fno-omit-frame-pointer -g0 -ftrivial-auto-var-init=pattern -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wno-shorten-64-to-32 -Wall -Wno-unused-variable -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-unneeded-internal-declaration -Wno-undefined-var-template -std=c++14 -fno-exceptions -fno-rtti -nostdinc++ -isystem../../buildtools/third_party/libc++/trunk/include -isystem../../buildtools/third_party/libc++abi/trunk/include -fvisibility-inlines-hidden  -stdlib=libc++ -Wno-unused-command-line-argument -c ../../third_party/boringssl/gostssl.cpp -o obj/third_party/boringssl/boringssl/gostssl.o
In file included from ../../third_party/boringssl/gostssl.cpp:45:
../../third_party/boringssl/src/include/WinCryptEx.h:2337:14: error: 'regparm' is not valid on this platform
typedef BOOL CPCAPI CPC_Kernel_Fpu_Begin_Callback(
             ^~~~~~
../../third_party/boringssl/src/include/WinCryptEx.h:2267:32: note: expanded from macro 'CPCAPI'
        #define CPCAPI  __attribute__((regparm(0)))
                                       ^       ~
../../third_party/boringssl/src/include/WinCryptEx.h:2395:14: error: 'regparm' is not valid on this platform
typedef BOOL CPCAPI CPC_Kernel_Fpu_End_Callback(
             ^~~~~~
../../third_party/boringssl/src/include/WinCryptEx.h:2267:32: note: expanded from macro 'CPCAPI'
        #define CPCAPI  __attribute__((regparm(0)))
                                       ^       ~
2 errors generated.

Есть ли планы научить собираться вне x86? В целом непонятно, зачем это может понадобиться, больше для интереса спрашиваю.

deemru commented 4 years ago

Далёкие планы есть, в ближайших нет.

В целом, основа проекта, msspi, на arm64 собирается и работает, значит проблема со сборкой не критичная, если очень хочется arm64, можно попробовать решить самостоятельно.

x09 commented 3 years ago

На, например, aarch64:

[6265/42875] CXX obj/third_party/boringssl/boringssl/gostssl.o
FAILED: obj/third_party/boringssl/boringssl/gostssl.o 
clang++ -MMD -MF obj/third_party/boringssl/boringssl/gostssl.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_LIBCPP_ABI_UNSTABLE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_ENABLE_NODISCARD -DCR_LIBCXX_REVISION=375504 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DBORINGSSL_ALLOW_CXX_RUNTIME -DBORINGSSL_IMPLEMENTATION -DBORINGSSL_NO_STATIC_INITIALIZER -DOPENSSL_SMALL -D_XOPEN_SOURCE=700 -I../.. -Igen -I../../third_party/boringssl/src/include -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -funwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -no-canonical-prefixes -O2 -fno-ident -fdata-sections -ffunction-sections -fno-omit-frame-pointer -g0 -ftrivial-auto-var-init=pattern -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wno-shorten-64-to-32 -Wall -Wno-unused-variable -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-unneeded-internal-declaration -Wno-undefined-var-template -std=c++14 -fno-exceptions -fno-rtti -nostdinc++ -isystem../../buildtools/third_party/libc++/trunk/include -isystem../../buildtools/third_party/libc++abi/trunk/include -fvisibility-inlines-hidden  -stdlib=libc++ -Wno-unused-command-line-argument -c ../../third_party/boringssl/gostssl.cpp -o obj/third_party/boringssl/boringssl/gostssl.o
In file included from ../../third_party/boringssl/gostssl.cpp:45:
../../third_party/boringssl/src/include/WinCryptEx.h:2337:14: error: 'regparm' is not valid on this platform
typedef BOOL CPCAPI CPC_Kernel_Fpu_Begin_Callback(
             ^~~~~~
../../third_party/boringssl/src/include/WinCryptEx.h:2267:32: note: expanded from macro 'CPCAPI'
        #define CPCAPI  __attribute__((regparm(0)))
                                       ^       ~
../../third_party/boringssl/src/include/WinCryptEx.h:2395:14: error: 'regparm' is not valid on this platform
typedef BOOL CPCAPI CPC_Kernel_Fpu_End_Callback(
             ^~~~~~
../../third_party/boringssl/src/include/WinCryptEx.h:2267:32: note: expanded from macro 'CPCAPI'
        #define CPCAPI  __attribute__((regparm(0)))
                                       ^       ~
2 errors generated.

Есть ли планы научить собираться вне x86? В целом непонятно, зачем это может понадобиться, больше для интереса спрашиваю.

хм.. aarch64 это байкал.. на байкале есть альт 9, где хр-гост из коробки.. смотри его спек