Chromium - сборка и модификация

Вопросы написания собственного программного кода (на любых языках)

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 14939
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Chromium - сборка и модификация

Непрочитанное сообщение Olej » 04 сен 2015, 23:21

Olej писал(а):Движемся дальше по инструкции:
Дальше - сборка:

Код: Выделить всё

olej@nvidia ~/chromium $ ninja -C out/Debug chrome && out/Debug/chrome
Приложение 'ninja' может быть найдено в следующих пакетах:
 * ninja
 * ninja-build
Попробуйте: sudo apt-get install <выбранный пакет>
3-й облом:

Код: Выделить всё

olej@nvidia ~/chromium $ apt show ninja-build
Пакет: ninja-build
Новый: да
Состояние: не установлен
Версия: 1.3.4-1.1ubuntu0.14.04.1
Приоритет: необязательный
Раздел: devel
Сопровождающий: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Архитектура: i386
Размер в распакованном виде: 308 k
Зависимости: libc6 (>= 2.7), libgcc1 (>= 1:4.1.1), libstdc++6 (>= 4.1.1)
Конфликтует: ninja
Описание: small build system closest in spirit to Make
 Ninja is yet another build system. It takes as input the interdependencies of
 files (typically source code and output executables) and orchestrates building
 them, quickly.

 Ninja joins a sea of other build systems. Its distinguishing goal is to be
 fast. It is born from the Chromium browser project, which has over 30,000
 source files and whose other build systems can take ten seconds to start
 building after changing one file. Ninja is under a second.
Сайт: http://martine.github.com/ninja/

Код: Выделить всё

olej@nvidia ~/chromium $ apt install ninja-build
...
Регистрация документа в scrollkeeper...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Настраивается пакет ninja-build (1.3.4-1.1ubuntu0.14.04.1) …
Ninja - small build system similar to make
Ninja представляет собой упрощенный вариант программы make, оптимизированный для значительного ускорения процесса повторной сборки крупных проектов, после внесения незначительных изменений в код. Ninja не поддерживает сложные сценарии принятия решений и оперирует простейшими правилами для описания зависимостей между файлами собираемого проекта. Вопрос учета системных зависимостей выносятся на плечи внешних инструментов, таких как пакет autotools. Использование Ninja позволяет значительно сократить время выполнения служебных операций в процессе пересборки.

Аватара пользователя
Olej
Писатель
Сообщения: 14939
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Chromium - сборка и модификация

Непрочитанное сообщение Olej » 04 сен 2015, 23:49

Дальше компиляция и сборка...

И здесь совершенно дикий 4-й облом:

Код: Выделить всё

olej@nvidia ~/chromium/src $ ninja -C out/Debug chrome
ninja: Entering directory `out/Debug'
[3/19830] CXX obj/third_party/pdfium/fpdfsdk/src/pdfwindow/pdfwindow.PWL_Button.o
FAILED: ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/third_party/pdfium/fpdfsdk/src/pdfwindow/pdfwindow.PWL_Button.o.d -DOPJ_STATIC -DV8_DEPRECATION_WARNINGS -D_CRT_SECURE_NO_WARNINGS -DCLD_VERSION=2 -D_FILE_OFFSET_BITS=64 -D_FX_CPU_=_FX_X86_ -DCHROMIUM_BUILD -DCR_CLANG_REVISION=245965-1 -DCOMPONENT_BUILD -DUI_COMPOSITOR_IMAGE_TRANSPORT -DUSE_AURA=1 -DUSE_ASH=1 -DUSE_PANGO=1 -DUSE_CAIRO=1 -DUSE_DEFAULT_RENDER_THEME=1 -DUSE_LIBJPEG_TURBO=1 -DUSE_X11=1 -DUSE_CLIPBOARD_AURAX11=1 -DENABLE_ONE_CLICK_SIGNIN -DENABLE_PRE_SYNC_BACKUP -DENABLE_WEBRTC=1 -DENABLE_MEDIA_ROUTER=1 -DENABLE_PEPPER_CDMS -DENABLE_CONFIGURATION_POLICY -DENABLE_NOTIFICATIONS -DENABLE_HIDPI=1 -DENABLE_TOPCHROME_MD=1 -DUSE_UDEV -DDONT_EMBED_BUILD_METADATA -DFIELDTRIAL_TESTING_ENABLED -DENABLE_TASK_MANAGER=1 -DENABLE_EXTENSIONS=1 -DENABLE_PDF=1 -DENABLE_PLUGINS=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_THEMES=1 -DENABLE_AUTOFILL_DIALOG=1 -DENABLE_BACKGROUND=1 -DENABLE_GOOGLE_NOW=1 -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DENABLE_PRINT_PREVIEW=1 -DENABLE_SPELLCHECK=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_APP_LIST=1 -DENABLE_SETTINGS_APP=1 -DENABLE_SUPERVISED_USERS=1 -DENABLE_MDNS=1 -DENABLE_SERVICE_DISCOVERY=1 -DV8_USE_EXTERNAL_STARTUP_DATA -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DSAFE_BROWSING_SERVICE -DUSE_LIBPCI=1 -DUSE_OPENSSL=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -D_DEBUG -I../../third_party/pdfium/third_party/freetype/include -Igen -fstack-protector --param=ssp-buffer-size=4 -Werror -pthread -fno-strict-aliasing -Wno-unused-parameter -Wno-missing-field-initializers -fvisibility=hidden -pipe -fPIC -Wno-reserved-user-defined-literal -Xclang -load -Xclang /home/olej/chromium/src/third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so -Xclang -add-plugin -Xclang find-bad-constructs -Xclang -plugin-arg-find-bad-constructs -Xclang check-templates -momit-leaf-frame-pointer -mstack-alignment=16 -mstackrealign -fcolor-diagnostics -B/home/olej/chromium/src/third_party/binutils/Linux_x64/Release/bin -Wheader-hygiene -Wno-char-subscripts -Wno-unneeded-internal-declaration -Wno-covered-switch-default -Wstring-conversion -Wno-c++11-narrowing -Wno-deprecated-register -Wno-inconsistent-missing-override -Wno-shift-negative-value -Wno-unused-function -Wno-unused-variable -Wno-format -Wno-unused-result -msse2 -mfpmath=sse -mmmx -m32 -O0 -g -funwind-tables -Wno-undefined-bool-conversion -Wno-tautological-undefined-compare -fno-exceptions -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -std=gnu++11 -Wno-deprecated  -c ../../third_party/pdfium/fpdfsdk/src/pdfwindow/PWL_Button.cpp -o obj/third_party/pdfium/fpdfsdk/src/pdfwindow/pdfwindow.PWL_Button.o
../../third_party/llvm-build/Release+Asserts/bin/clang++: 1: ../../third_party/llvm-build/Release+Asserts/bin/clang++: %�: not found
../../third_party/llvm-build/Release+Asserts/bin/clang++: 1: ../../third_party/llvm-build/Release+Asserts/bin/clang++: ELF: not found
../../third_party/llvm-build/Release+Asserts/bin/clang++: 2: ../../third_party/llvm-build/Release+Asserts/bin/clang++: f: not found
../../third_party/llvm-build/Release+Asserts/bin/clang++: 3: ../../third_party/llvm-build/Release+Asserts/bin/clang++: #
                                                                                                                           20*4!: not found

Аватара пользователя
Olej
Писатель
Сообщения: 14939
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Chromium - сборка и модификация

Непрочитанное сообщение Olej » 05 сен 2015, 00:00

Olej писал(а):Дальше компиляция и сборка...

И здесь совершенно дикий 4-й облом:

Код: Выделить всё

olej@nvidia ~/chromium/src $ ninja -C out/Debug chrome
ninja: Entering directory `out/Debug'
[3/19830] CXX obj/third_party/pdfium/fpdfsdk/src/pdfwindow/pdfwindow.PWL_Button.o
FAILED: ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/third_party/pdfium/fpdfsdk/src/pdfwindow/pdfwindow.PWL_Button.o.d -DOPJ_STATIC -DV8_DEPRECATION_WARNINGS -D_CRT_SECURE_NO_WARNINGS -DCLD_VERSION=2 -D_FILE_OFFSET_BITS=64 -D_FX_CPU_=_FX_X86_ -DCHROMIUM_BUILD -DCR_CLANG_REVISION=245965-1 -DCOMPONENT_BUILD -DUI_COMPOSITOR_IMAGE_TRANSPORT -DUSE_AURA=1 -DUSE_ASH=1 -DUSE_PANGO=1 -DUSE_CAIRO=1 -DUSE_DEFAULT_RENDER_THEME=1 -DUSE_LIBJPEG_TURBO=1 -DUSE_X11=1 -DUSE_CLIPBOARD_AURAX11=1 -DENABLE_ONE_CLICK_SIGNIN -DENABLE_PRE_SYNC_BACKUP -DENABLE_WEBRTC=1 -DENABLE_MEDIA_ROUTER=1 -DENABLE_PEPPER_CDMS -DENABLE_CONFIGURATION_POLICY -DENABLE_NOTIFICATIONS -DENABLE_HIDPI=1 -DENABLE_TOPCHROME_MD=1 -DUSE_UDEV -DDONT_EMBED_BUILD_METADATA -DFIELDTRIAL_TESTING_ENABLED -DENABLE_TASK_MANAGER=1 -DENABLE_EXTENSIONS=1 -DENABLE_PDF=1 -DENABLE_PLUGINS=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_THEMES=1 -DENABLE_AUTOFILL_DIALOG=1 -DENABLE_BACKGROUND=1 -DENABLE_GOOGLE_NOW=1 -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DENABLE_PRINT_PREVIEW=1 -DENABLE_SPELLCHECK=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_APP_LIST=1 -DENABLE_SETTINGS_APP=1 -DENABLE_SUPERVISED_USERS=1 -DENABLE_MDNS=1 -DENABLE_SERVICE_DISCOVERY=1 -DV8_USE_EXTERNAL_STARTUP_DATA -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DSAFE_BROWSING_SERVICE -DUSE_LIBPCI=1 -DUSE_OPENSSL=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -D_DEBUG -I../../third_party/pdfium/third_party/freetype/include -Igen -fstack-protector --param=ssp-buffer-size=4 -Werror -pthread -fno-strict-aliasing -Wno-unused-parameter -Wno-missing-field-initializers -fvisibility=hidden -pipe -fPIC -Wno-reserved-user-defined-literal -Xclang -load -Xclang /home/olej/chromium/src/third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so -Xclang -add-plugin -Xclang find-bad-constructs -Xclang -plugin-arg-find-bad-constructs -Xclang check-templates -momit-leaf-frame-pointer -mstack-alignment=16 -mstackrealign -fcolor-diagnostics -B/home/olej/chromium/src/third_party/binutils/Linux_x64/Release/bin -Wheader-hygiene -Wno-char-subscripts -Wno-unneeded-internal-declaration -Wno-covered-switch-default -Wstring-conversion -Wno-c++11-narrowing -Wno-deprecated-register -Wno-inconsistent-missing-override -Wno-shift-negative-value -Wno-unused-function -Wno-unused-variable -Wno-format -Wno-unused-result -msse2 -mfpmath=sse -mmmx -m32 -O0 -g -funwind-tables -Wno-undefined-bool-conversion -Wno-tautological-undefined-compare -fno-exceptions -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -std=gnu++11 -Wno-deprecated  -c ../../third_party/pdfium/fpdfsdk/src/pdfwindow/PWL_Button.cpp -o obj/third_party/pdfium/fpdfsdk/src/pdfwindow/pdfwindow.PWL_Button.o
../../third_party/llvm-build/Release+Asserts/bin/clang++: 1: ../../third_party/llvm-build/Release+Asserts/bin/clang++: %�: not found
../../third_party/llvm-build/Release+Asserts/bin/clang++: 1: ../../third_party/llvm-build/Release+Asserts/bin/clang++: ELF: not found
../../third_party/llvm-build/Release+Asserts/bin/clang++: 2: ../../third_party/llvm-build/Release+Asserts/bin/clang++: f: not found
../../third_party/llvm-build/Release+Asserts/bin/clang++: 3: ../../third_party/llvm-build/Release+Asserts/bin/clang++: #
                                                                                                                           20*4!: not found
Совершенно естественно предположить, что Chromium собирается компилятором Clag из проекта LLVM (сборка Clang, Clang)

Код: Выделить всё

olej@nvidia ~/chromium/src $ which clang
/usr/bin/clang

olej@nvidia ~/chromium/src $ clang --version
Ubuntu clang version 3.5.0-4ubuntu2~trusty2 (tags/RELEASE_350/final) (based on LLVM 3.5.0)
Target: i386-pc-linux-gnu
Thread model: posix
Но сборка вызывает не установленный в системе clang, а совершенно дикий экземпляр:

Код: Выделить всё

olej@nvidia ~/chromium/src/third_party/llvm-build/Release+Asserts/bin $ pwd
/home/olej/chromium/src/third_party/llvm-build/Release+Asserts/bin

olej@nvidia ~/chromium/src/third_party/llvm-build/Release+Asserts/bin $ ls
clang  clang++  clang-cl  llvm-symbolizer

olej@nvidia ~/chromium/src/third_party/llvm-build/Release+Asserts/bin $ file *
clang:           ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=d0f59cbae0963dea958896d71e316d7c25f20a66, stripped
clang++:         symbolic link to `clang' 
clang-cl:        symbolic link to `clang' 
llvm-symbolizer: ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=a45620492678a37b163fb2af82f374f76509fa17, not stripped
Они его зашили в дерево исходных кодов!
И зашили его в фиксированной 64-бит версии ... которая не подлежит пересборке.
И в моей 32-бит системе ninja не задумываясь запускает 64-бит компилятор.
Это какой-то ... ужос! :-o

Аватара пользователя
Olej
Писатель
Сообщения: 14939
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Chromium - сборка и модификация

Непрочитанное сообщение Olej » 05 сен 2015, 14:32

Olej писал(а): Они его зашили в дерево исходных кодов!
И как следует из файла chromium/src/third_party/llvm-build/Release+Asserts/buildlog.txt:

Код: Выделить всё

olej@nvidia ~/chromium/src/third_party/llvm-build/Release+Asserts $ pwd
/home/olej/chromium/src/third_party/llvm-build/Release+Asserts
olej@nvidia ~/chromium/src/third_party/llvm-build/Release+Asserts $ ls
bin  buildlog.txt  lib
Они вообще закачивают исходники LLVM из SVN репозитария проекта, собирают его (Clang) где-то совершенно отдельно, а потом заливают каталоги bin & lib в дерево исходных кодов Chromium:

Код: Выделить всё

olej@nvidia ~/chromium/src/third_party/llvm-build/Release+Asserts $ ls
bin  buildlog.txt  lib
Безумные люди! :-o

Аватара пользователя
Olej
Писатель
Сообщения: 14939
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Chromium - сборка и модификация

Непрочитанное сообщение Olej » 05 сен 2015, 14:56

Olej писал(а): Они вообще закачивают исходники LLVM из SVN репозитария проекта, собирают его (Clang) где-то совершенно отдельно, а потом заливают каталоги bin & lib в дерево исходных кодов Chromium:
Попробовал заменить их 64-битный Clang ссылкой на установленный в моей системе:

Код: Выделить всё

olej@nvidia ~/chromium/src/third_party/llvm-build/Release+Asserts/bin $ mv clang clang.64

olej@nvidia ~/chromium/src/third_party/llvm-build/Release+Asserts/bin $ ln -s `which clang` clang

olej@nvidia ~/chromium/src/third_party/llvm-build/Release+Asserts/bin $ ls -l
итого 62740
lrwxrwxrwx 1 olej olej       14 сент.  5 14:39 clang -> /usr/bin/clang
lrwxrwxrwx 1 olej olej        5 авг.  26 21:58 clang++ -> clang
-rwxr-xr-x 1 olej olej 61161432 авг.  26 21:58 clang.64
lrwxrwxrwx 1 olej olej        5 авг.  26 21:58 clang-cl -> clang
-rwxr-xr-x 1 olej olej  3082578 авг.  26 21:58 llvm-symbolizer

olej@nvidia ~/chromium/src/third_party/llvm-build/Release+Asserts/bin $ file clang
clang: symbolic link to `/usr/bin/clang' 

olej@nvidia ~/chromium/src/third_party/llvm-build/Release+Asserts/bin $ file -L clang
clang: ELF 32-bit LSB  executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=a6bf968220327dbe2424a35cf751c78f5c84eb75, stripped
Компиляция:

Код: Выделить всё

olej@nvidia ~/chromium/src $ time ninja -C out/Release  chrome
ninja: Entering directory `out/Release'
[4/19831] CXX obj/third_party/pdfium/fpdfsdk/src/pdfwindow/pdfwindow.PWL_Button.o
FAILED: ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/third_party/pdfium/fpdfsdk/src/pdfwindow/pdfwindow.PWL_Button.o.d -DOPJ_STATIC -DV8_DEPRECATION_WARNINGS -D_CRT_SECURE_NO_WARNINGS -DCLD_VERSION=2 -D_FILE_OFFSET_BITS=64 -D_FX_CPU_=_FX_X86_ -DCHROMIUM_BUILD -DCR_CLANG_REVISION=245965-1 -DCOMPONENT_BUILD -DUI_COMPOSITOR_IMAGE_TRANSPORT -DUSE_AURA=1 -DUSE_ASH=1 -DUSE_PANGO=1 -DUSE_CAIRO=1 -DUSE_DEFAULT_RENDER_THEME=1 -DUSE_LIBJPEG_TURBO=1 -DUSE_X11=1 -DUSE_CLIPBOARD_AURAX11=1 -DENABLE_ONE_CLICK_SIGNIN -DENABLE_PRE_SYNC_BACKUP -DENABLE_WEBRTC=1 -DENABLE_MEDIA_ROUTER=1 -DENABLE_PEPPER_CDMS -DENABLE_CONFIGURATION_POLICY -DENABLE_NOTIFICATIONS -DENABLE_HIDPI=1 -DENABLE_TOPCHROME_MD=1 -DUSE_UDEV -DDONT_EMBED_BUILD_METADATA -DFIELDTRIAL_TESTING_ENABLED -DENABLE_TASK_MANAGER=1 -DENABLE_EXTENSIONS=1 -DENABLE_PDF=1 -DENABLE_PLUGINS=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_THEMES=1 -DENABLE_AUTOFILL_DIALOG=1 -DENABLE_BACKGROUND=1 -DENABLE_GOOGLE_NOW=1 -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DENABLE_PRINT_PREVIEW=1 -DENABLE_SPELLCHECK=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_APP_LIST=1 -DENABLE_SETTINGS_APP=1 -DENABLE_SUPERVISED_USERS=1 -DENABLE_MDNS=1 -DENABLE_SERVICE_DISCOVERY=1 -DV8_USE_EXTERNAL_STARTUP_DATA -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DSAFE_BROWSING_SERVICE -DUSE_LIBPCI=1 -DUSE_OPENSSL=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -I../../third_party/pdfium/third_party/freetype/include -Igen -fstack-protector --param=ssp-buffer-size=4 -Werror -pthread -fno-strict-aliasing -Wno-unused-parameter -Wno-missing-field-initializers -fvisibility=hidden -pipe -fPIC -Wno-reserved-user-defined-literal -Xclang -load -Xclang /home/olej/chromium/src/third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so -Xclang -add-plugin -Xclang find-bad-constructs -Xclang -plugin-arg-find-bad-constructs -Xclang check-templates -momit-leaf-frame-pointer -mstack-alignment=16 -mstackrealign -fcolor-diagnostics -B/home/olej/chromium/src/third_party/binutils/Linux_x64/Release/bin -Wheader-hygiene -Wno-char-subscripts -Wno-unneeded-internal-declaration -Wno-covered-switch-default -Wstring-conversion -Wno-c++11-narrowing -Wno-deprecated-register -Wno-inconsistent-missing-override -Wno-shift-negative-value -Wno-unused-function -Wno-unused-variable -Wno-format -Wno-unused-result -msse2 -mfpmath=sse -mmmx -m32 -O2 -fno-ident -fdata-sections -ffunction-sections -funwind-tables -fno-exceptions -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -std=gnu++11 -Wno-deprecated  -c ../../third_party/pdfium/fpdfsdk/src/pdfwindow/PWL_Button.cpp -o obj/third_party/pdfium/fpdfsdk/src/pdfwindow/pdfwindow.PWL_Button.o
error: unknown warning option '-Wno-inconsistent-missing-override' [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Wno-shift-negative-value'; did you mean '-Wno-shift-sign-overflow'? [-Werror,-Wunknown-warning-option]
error: unable to load plugin '/home/olej/chromium/src/third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so': '/home/olej/chromium/src/third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so: wrong ELF class: ELFCLASS64'
[4/19831] CXX obj/third_party/angle/src/common/angle_common.MemoryBuffer.o
FAILED: ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/third_party/angle/src/common/angle_common.MemoryBuffer.o.d -DV8_DEPRECATION_WARNINGS -DCLD_VERSION=2 -D_FILE_OFFSET_BITS=64 -DCHROMIUM_BUILD -DCR_CLANG_REVISION=245965-1 -DCOMPONENT_BUILD -DUI_COMPOSITOR_IMAGE_TRANSPORT -DUSE_AURA=1 -DUSE_ASH=1 -DUSE_PANGO=1 -DUSE_CAIRO=1 -DUSE_DEFAULT_RENDER_THEME=1 -DUSE_LIBJPEG_TURBO=1 -DUSE_X11=1 -DUSE_CLIPBOARD_AURAX11=1 -DENABLE_ONE_CLICK_SIGNIN -DENABLE_PRE_SYNC_BACKUP -DENABLE_WEBRTC=1 -DENABLE_MEDIA_ROUTER=1 -DENABLE_PEPPER_CDMS -DENABLE_CONFIGURATION_POLICY -DENABLE_NOTIFICATIONS -DENABLE_HIDPI=1 -DENABLE_TOPCHROME_MD=1 -DUSE_UDEV -DDONT_EMBED_BUILD_METADATA -DFIELDTRIAL_TESTING_ENABLED -DENABLE_TASK_MANAGER=1 -DENABLE_EXTENSIONS=1 -DENABLE_PDF=1 -DENABLE_PLUGINS=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_THEMES=1 -DENABLE_AUTOFILL_DIALOG=1 -DENABLE_BACKGROUND=1 -DENABLE_GOOGLE_NOW=1 -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DENABLE_PRINT_PREVIEW=1 -DENABLE_SPELLCHECK=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_APP_LIST=1 -DENABLE_SETTINGS_APP=1 -DENABLE_SUPERVISED_USERS=1 -DENABLE_MDNS=1 -DENABLE_SERVICE_DISCOVERY=1 -DV8_USE_EXTERNAL_STARTUP_DATA -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DSAFE_BROWSING_SERVICE -DUSE_LIBPCI=1 -DUSE_OPENSSL=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -Igen -I../../third_party/angle/src -I../../third_party/angle/include -fstack-protector --param=ssp-buffer-size=4 -Werror -pthread -fno-strict-aliasing -Wno-unused-parameter -Wno-missing-field-initializers -fvisibility=hidden -pipe -fPIC -Wno-reserved-user-defined-literal -Xclang -load -Xclang /home/olej/chromium/src/third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so -Xclang -add-plugin -Xclang find-bad-constructs -Xclang -plugin-arg-find-bad-constructs -Xclang check-templates -momit-leaf-frame-pointer -mstack-alignment=16 -mstackrealign -fcolor-diagnostics -B/home/olej/chromium/src/third_party/binutils/Linux_x64/Release/bin -Wheader-hygiene -Wno-char-subscripts -Wno-unneeded-internal-declaration -Wno-covered-switch-default -Wstring-conversion -Wno-c++11-narrowing -Wno-deprecated-register -Wno-inconsistent-missing-override -Wno-shift-negative-value -Wno-unused-function -Wno-unused-variable -Wno-format -Wno-unused-result -msse2 -mfpmath=sse -mmmx -m32 -O2 -fno-ident -fdata-sections -ffunction-sections -funwind-tables -fno-exceptions -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -std=gnu++11 -Wno-deprecated  -c ../../third_party/angle/src/common/MemoryBuffer.cpp -o obj/third_party/angle/src/common/angle_common.MemoryBuffer.o
error: unknown warning option '-Wno-inconsistent-missing-override' [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Wno-shift-negative-value'; did you mean '-Wno-shift-sign-overflow'? [-Werror,-Wunknown-warning-option]
error: unable to load plugin '/home/olej/chromium/src/third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so': '/home/olej/chromium/src/third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so: wrong ELF class: ELFCLASS64'
[4/19831] CXX obj/third_party/pdfium/fpdfsdk/src/pdfwindow/pdfwindow.PWL_Caret.o
FAILED: ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/third_party/pdfium/fpdfsdk/src/pdfwindow/pdfwindow.PWL_Caret.o.d -DOPJ_STATIC -DV8_DEPRECATION_WARNINGS -D_CRT_SECURE_NO_WARNINGS -DCLD_VERSION=2 -D_FILE_OFFSET_BITS=64 -D_FX_CPU_=_FX_X86_ -DCHROMIUM_BUILD -DCR_CLANG_REVISION=245965-1 -DCOMPONENT_BUILD -DUI_COMPOSITOR_IMAGE_TRANSPORT -DUSE_AURA=1 -DUSE_ASH=1 -DUSE_PANGO=1 -DUSE_CAIRO=1 -DUSE_DEFAULT_RENDER_THEME=1 -DUSE_LIBJPEG_TURBO=1 -DUSE_X11=1 -DUSE_CLIPBOARD_AURAX11=1 -DENABLE_ONE_CLICK_SIGNIN -DENABLE_PRE_SYNC_BACKUP -DENABLE_WEBRTC=1 -DENABLE_MEDIA_ROUTER=1 -DENABLE_PEPPER_CDMS -DENABLE_CONFIGURATION_POLICY -DENABLE_NOTIFICATIONS -DENABLE_HIDPI=1 -DENABLE_TOPCHROME_MD=1 -DUSE_UDEV -DDONT_EMBED_BUILD_METADATA -DFIELDTRIAL_TESTING_ENABLED -DENABLE_TASK_MANAGER=1 -DENABLE_EXTENSIONS=1 -DENABLE_PDF=1 -DENABLE_PLUGINS=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_THEMES=1 -DENABLE_AUTOFILL_DIALOG=1 -DENABLE_BACKGROUND=1 -DENABLE_GOOGLE_NOW=1 -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DENABLE_PRINT_PREVIEW=1 -DENABLE_SPELLCHECK=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_APP_LIST=1 -DENABLE_SETTINGS_APP=1 -DENABLE_SUPERVISED_USERS=1 -DENABLE_MDNS=1 -DENABLE_SERVICE_DISCOVERY=1 -DV8_USE_EXTERNAL_STARTUP_DATA -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DSAFE_BROWSING_SERVICE -DUSE_LIBPCI=1 -DUSE_OPENSSL=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -I../../third_party/pdfium/third_party/freetype/include -Igen -fstack-protector --param=ssp-buffer-size=4 -Werror -pthread -fno-strict-aliasing -Wno-unused-parameter -Wno-missing-field-initializers -fvisibility=hidden -pipe -fPIC -Wno-reserved-user-defined-literal -Xclang -load -Xclang /home/olej/chromium/src/third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so -Xclang -add-plugin -Xclang find-bad-constructs -Xclang -plugin-arg-find-bad-constructs -Xclang check-templates -momit-leaf-frame-pointer -mstack-alignment=16 -mstackrealign -fcolor-diagnostics -B/home/olej/chromium/src/third_party/binutils/Linux_x64/Release/bin -Wheader-hygiene -Wno-char-subscripts -Wno-unneeded-internal-declaration -Wno-covered-switch-default -Wstring-conversion -Wno-c++11-narrowing -Wno-deprecated-register -Wno-inconsistent-missing-override -Wno-shift-negative-value -Wno-unused-function -Wno-unused-variable -Wno-format -Wno-unused-result -msse2 -mfpmath=sse -mmmx -m32 -O2 -fno-ident -fdata-sections -ffunction-sections -funwind-tables -fno-exceptions -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -std=gnu++11 -Wno-deprecated  -c ../../third_party/pdfium/fpdfsdk/src/pdfwindow/PWL_Caret.cpp -o obj/third_party/pdfium/fpdfsdk/src/pdfwindow/pdfwindow.PWL_Caret.o
error: unknown warning option '-Wno-inconsistent-missing-override' [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Wno-shift-negative-value'; did you mean '-Wno-shift-sign-overflow'? [-Werror,-Wunknown-warning-option]
error: unable to load plugin '/home/olej/chromium/src/third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so': '/home/olej/chromium/src/third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so: wrong ELF class: ELFCLASS64'
ninja: build stopped: subcommand failed.

real	0m9.101s
user	0m0.764s
sys	0m0.536s
Всё уже гораздо лучше...
Но у них и плагины Clang 64-бит :-?

Аватара пользователя
Olej
Писатель
Сообщения: 14939
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Chromium - сборка и модификация

Непрочитанное сообщение Olej » 05 сен 2015, 19:37

Olej писал(а): Они вообще закачивают исходники LLVM из SVN репозитария проекта, собирают его (Clang) где-то совершенно отдельно, а потом заливают каталоги bin & lib в дерево исходных кодов Chromium:
Безумные люди! :-o
Понятно почему они так делают :lol:
Если посмотреть на сайте LLVM, то там уже готовые бинарные сборки:
Pre-Built Binaries:
...
Clang for Fedora22 x86_64 Linux (.sig)
Clang for Fedora22 i686 Linux (.sig)
Clang for OpenSuSE 13.2 x86_64 Linux (.sig)
Clang for OpenSuSE 13.2 i586 Linux (.sig)
Clang for x86_64 Ubuntu 14.04 (.sig)
...
Для Fedora или SUSE там есть готовые и 32 и 64 бит сборки но для Ubuntu есть только 64. :-(
Т.е. сборкой они себя не утруждают...

Аватара пользователя
Olej
Писатель
Сообщения: 14939
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Chromium - сборка и модификация

Непрочитанное сообщение Olej » 19 авг 2021, 12:04

Olej писал(а):
05 сен 2015, 14:56
Всё уже гораздо лучше...
По прошествию 6 лет снова возвращаюсь в тему ... вот отсюда: Chromium инструментарий (возникла нужда в сборке и Chromium непосредственно).

Аватара пользователя
Olej
Писатель
Сообщения: 14939
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Chromium - сборка и модификация

Непрочитанное сообщение Olej » 19 авг 2021, 12:18

Olej писал(а):
19 авг 2021, 12:04
По прошествию 6 лет снова возвращаюсь в тему ... вот отсюда: Chromium инструментарий
Основная инструкция: Checking out and building Chromium on Linux

Код: Выделить всё

olej@R420:~/2021$ echo $PATH
/home/olej/.bin:/home/olej/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/olej/depot_tools:/home/olej/depot_tools

olej@R420:~/2021$ which gn
/home/olej/depot_tools/gn

olej@R420:~/2021$ which fetch
/home/olej/depot_tools/fetch
Исходники Chromium скачаны...

Код: Выделить всё

olej@R420:~/chromium/src$ pwd
/home/olej/chromium/src

Код: Выделить всё

olej@R420:~/chromium/src$ time gn gen out/Default
Done. Made 17800 targets from 2933 files in 5019ms

real	0m5,163s
user	0m13,913s
sys	0m5,527s
Вы можете заменить Default другим именем, но оно должно быть подкаталогом out.

Аватара пользователя
Olej
Писатель
Сообщения: 14939
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Chromium - сборка и модификация

Непрочитанное сообщение Olej » 19 авг 2021, 12:27

Olej писал(а):
19 авг 2021, 12:18
Checking out and building Chromium on Linux
Там в документации есть множество альтернативных приёмчиков для того, чтобы ускорить сборку:
https://chromium.googlesource.com/chrom ... -the-build
Но пока я не буду заморачиваться с этим. Оставим это на потом.
Как я понимаю, параметры сборки для каждой конфигурации, отличные от дефаултных, будут записываться здесь:

Код: Выделить всё

olej@R420:~/chromium/src/out/Default$ pwd
/home/olej/chromium/src/out/Default

Код: Выделить всё

olej@R420:~/chromium/src/out/Default$ cat args.gn 
# Set build arguments here. See `gn help buildargs`.
Сами значения аргументов для альтернатив достаточно внятно описаны там в инструкции по ускорению.

Аватара пользователя
Olej
Писатель
Сообщения: 14939
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Chromium - сборка и модификация

Непрочитанное сообщение Olej » 19 авг 2021, 12:44

Olej писал(а):
19 авг 2021, 12:27
Там в документации есть
Вы можете получить список всех других целей сборки из GN, запустив gn ls out/Default из командной строки. Чтобы скомпилировать его, передайте Ninja метку GN без предшествующего «//» (так, для // chrome / test: unit_tests используйте autoninja -C out /Default chrome/test: unit_tests)

Код: Выделить всё

olej@R420:~/chromium/src$ gn ls out/Default > targ.1
olej@R420:~/chromium/src$ 

olej@R420:~/2021/OWN_TEST.codes/Cromium$ cat targ.1 | wc -l
17800
Так себе не слабо :-o - число целей!

Код: Выделить всё

olej@R420:~/2021/OWN_TEST.codes/Cromium$ cat targ.1 | grep '^//chrome:' | wc -l
74

olej@R420:~/2021/OWN_TEST.codes/Cromium$ cat targ.1 | grep '^//chrome:' | tail -n20
//chrome:packed_resources_locales_ro
//chrome:packed_resources_locales_ru
//chrome:packed_resources_locales_sk
//chrome:packed_resources_locales_sl
//chrome:packed_resources_locales_sr
//chrome:packed_resources_locales_sv
//chrome:packed_resources_locales_sw
//chrome:packed_resources_locales_ta
//chrome:packed_resources_locales_te
//chrome:packed_resources_locales_th
//chrome:packed_resources_locales_tr
//chrome:packed_resources_locales_uk
//chrome:packed_resources_locales_vi
//chrome:packed_resources_locales_zh-CN
//chrome:packed_resources_locales_zh-TW
//chrome:resources
//chrome:strings
//chrome:unit_tests_pak
//chrome:visual_elements_resources
//chrome:xdg_mime
Из них - сторонние опенсорсные проекты:

Код: Выделить всё

olej@R420:~/2021/OWN_TEST.codes/Cromium$ cat targ.1 | grep '^//third_party/' | wc -l
5104

Ответить

Вернуться в «Программирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя