kompilacja mariadb bez zależności od gcc

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
akasei
Piegowaty Guziec
Piegowaty Guziec
Posty: 2
Rejestracja: 30 cze 2017, 12:35
Architektura: x86_64

kompilacja mariadb bez zależności od gcc

Postautor: akasei » 30 cze 2017, 12:39

Staram się skompilować MariaDB 10.x, ale nie wiem jak wyłączyć zależności od GCC przez co do prawidłowego działania serwera mysql musi być zainstalowany pakiet GCC :evil:

Ktoś wie jaką flagę dodać do CMake?

Kod: Zaznacz cały

ves ~/usr/bin $ ldd mysql
        linux-vdso.so.1 (0x00007ffd7dd03000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00007f1298f2c000)
        libz.so.1 => /lib/libz.so.1 (0x00007f1298d15000)
        libdl.so.2 => /lib/libdl.so.2 (0x00007f1298b11000)
        libssl.so.1.0.0 => /usr/lib/libssl.so.1.0.0 (0x00007f129889e000)
        libcrypto.so.1.0.0 => /usr/lib/libcrypto.so.1.0.0 (0x00007f1298449000)
        libncursesw.so.6 => /lib/libncursesw.so.6 (0x00007f12981df000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f1297e5f000)
        libm.so.6 => /lib/libm.so.6 (0x00007f1297b4c000)
        libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f1297935000)
        libc.so.6 => /lib/libc.so.6 (0x00007f1297591000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f129914a000)
Awatar użytkownika
ka_o_3991
Przyjaciel
Przyjaciel
Posty: 861
Rejestracja: 01 wrz 2007, 13:34
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86

Re: kompilacja mariadb bez zależności od gcc

Postautor: ka_o_3991 » 01 lip 2017, 00:46

Dlaczego chcesz kompilować zamiast zainstalować z repozytoriów?
Awatar użytkownika
jacekalex
Gibki Gibbon
Gibki Gibbon
Posty: 3645
Rejestracja: 17 cze 2007, 02:54
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86_64

Re: kompilacja mariadb bez zależności od gcc

Postautor: jacekalex » 01 lip 2017, 22:00

Skompilować bez kompilatora możesz własne gacie, ale na pewno nie program napisany w C/C++, jak serwer MariaDB.

Z resztą jak znasz polecenie ldd to zobacz to:

ldd `which mysqld`
linux-vdso.so.1 (0x00007ffc96fef000)
libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007f8046fde000)
libodbc.so.2 => /usr/lib64/libodbc.so.2 (0x00007f8046d6c000)
libaio.so.1 => /lib64/libaio.so.1 (0x00007f8046b69000)
libz.so.1 => /lib64/libz.so.1 (0x00007f8046950000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f80466dc000)
libjemalloc.so.1 => /usr/lib64/libjemalloc.so.1 (0x00007f80464ae000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f8046276000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8046059000)
libssl.so.1.0.0 => /usr/lib64/libssl.so.1.0.0 (0x00007f8045de2000)
libcrypto.so.1.0.0 => /usr/lib64/libcrypto.so.1.0.0 (0x00007f8045962000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f804575e000)
libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/libstdc++.so.6 (0x00007f8045335000)
libm.so.6 => /lib64/libm.so.6 (0x00007f8045030000)
libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/libgcc_s.so.1 (0x00007f8044e19000)
libc.so.6 => /lib64/libc.so.6 (0x00007f8044a76000)
libicuuc.so.58 => /usr/lib64/libicuuc.so.58 (0x00007f80446a3000)
libltdl.so.7 => /usr/lib64/libltdl.so.7 (0x00007f8044498000)
/lib64/ld-linux-x86-64.so.2 (0x00007f804736a000)
libicudata.so.58 => /usr/lib64/libicudata.so.58 (0x00007f8042996000)


Ciekawe, co Ci przypominają wytłuszczone nazwy bibliotek? :twisted:

Z resztą GCC i tak masz w systemie w bibliotekach libstdc++.so.6 i libgcc_s.so.1,
jeśli nie chcesz w ogóle GCC w systemie, to będziesz chyba musiał te biblioteki usunąć. :twisted:

PS:
FreeBSD 11 podobno nie ma już obowiązkowo GCC, bo bazuje na Clangu, ale nie wiem, czy serwer MariaDB Clangiem skompilujesz. :pt36:

To by było na tyle
:craz:
Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Komputer jest jak klimatyzacja - gdy otworzysz okna, robi się bezużyteczny...
Linux User #499936
Inny OS: Gentoo Linux :)
akasei
Piegowaty Guziec
Piegowaty Guziec
Posty: 2
Rejestracja: 30 cze 2017, 12:35
Architektura: x86_64

Re: kompilacja mariadb bez zależności od gcc

Postautor: akasei » 03 lip 2017, 08:05

ka_o_3991 pisze:Dlaczego chcesz kompilować zamiast zainstalować z repozytoriów?


To jest LFS, tu nie ma repozytoriów.

jacekalex pisze:Skompilować bez kompilatora możesz własne gacie, ale na pewno nie program napisany w C/C++, jak serwer MariaDB.


Uno: ani jeden program u mnie w systemie (acl attr bash bzip2 coreutils dhcpcd diffutils e2fsprogs eudev findutils gawk glibc grep grub gzip iana-etc inetutils iproute2 kbd kmod less linux nano ncurses openssl procps-ng psmisc readline sed shadow syslogd sysvinit tar util-linux wget xz zlib) nie korzysta z GCC (chyba, że w tym momencie potrzebuje coś skompilować).

Duo: "Skompilować bez kompilatora" <> "wyłączyć zależności" czytaj ze zrozumieniem.

PS: pozostaje przy PostgreSQL, tam nie wymaga GCC w systemie.
Awatar użytkownika
jacekalex
Gibki Gibbon
Gibki Gibbon
Posty: 3645
Rejestracja: 17 cze 2007, 02:54
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86_64

Re: kompilacja mariadb bez zależności od gcc

Postautor: jacekalex » 03 lip 2017, 12:56

MariaDB też nie wymaga polecenia gcc, tylko bibliotek libstdc++.so.6 i libgcc_s.so.1, które są w praktyce częścią kompilatora gcc.

To, że w Debianie te biblioteki są w debianokształtnych wydzielone jako osobne pakiety,niczego tutaj nie zmienia.
To, czy masz polecenie gcc w systemie czy nie, nie ma znaczenia, bo gcc siedzi głównie w tych dwóch bibliotekach.

W przypadku Postgresa jest taka sama sytuacja jak w Mariadb:

Kod: Zaznacz cały

ldd /usr/lib64/postgresql-9.5/bin/postmaster
   ........
   libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/libstdc++.so.6 (0x00007f3b65f00000)
   libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/libgcc_s.so.1 (0x00007f3b65ce9000)


Jeśli natomiast w LFS spróbujesz zrobić aktualizację bezpieczeństwa Postgresa czy czegokolwiek innego,
to niestety bez gcc tego w LFS nie zrobisz, chyba że wykombinujesz jakiś inny kompilator jak Clang, EKOPath czy ICC.
Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Komputer jest jak klimatyzacja - gdy otworzysz okna, robi się bezużyteczny...
Linux User #499936
Inny OS: Gentoo Linux :)
Awatar użytkownika
enedil
Terminator
Terminator
Posty: 1303
Rejestracja: 08 wrz 2012, 16:54
Płeć: Mężczyzna
Wersja Ubuntu: 16.04
Środowisko graficzne: Unity
Architektura: x86_64
Kontaktowanie:

Re: kompilacja mariadb bez zależności od gcc

Postautor: enedil » 03 lip 2017, 16:00

Powiedz szczerze, jakiej libc używasz?

Poza tym, zainteresuj się flagąi `--static` do gcc.
Dobrze jest, psiakrew, a kto powie, że nie, to go w mordę!

~moderatorzy

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 4 gości