Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2019-05

Does FPC require glibc?

7 messages · 4 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Sven Barth
to Nozz

Nozz via fpc-pascal schrieb am Mo., 6.
Mai 2019, 22:18:

Empty Message

Depends on what you're using (and the platform). E.g. the compiler itself runs without glibc on Linux, but if you need to use threads for example that changes. Also if you link against libraries like GTK or Qt you also indirectly link to glibc and the RTL's initialization code will change due to this.
On some targets (e.g. macOS) using the C library is a must.

Regards,
Sven

Reply by email

Nozz
to Sven Barth
Sven Barth wrote 9 lines
Nozz via fpc-pascal schrieb am Mo., 6. Mai 2019, 22:18: > Empty Message Depends on what you're using (and the platform). E.g. the compiler itself runs without glibc on Linux, but if you need to use threads for example that changes. Also if you link against libraries like GTK or Qt you also indirectly link to glibc and the RTL's initialization code will change due to this. On some targets (e.g. macOS) using the C library is a must. Regards, Sven

Thanks, if I want to compile a program for Alpine Linux (musl libc instead of glibc) , is my best option to compile FPC&Lazarus from source?

Reply by email

Sven Barth
to Nozz
Nozz wrote 22 lines
On Monday, May 6, 2019 10:48 PM, Sven Barth wrote: > Nozz via fpc-pascal < > > schrieb am Mo., 6. Mai > 2019, 22:18: > > Empty Message > > > Depends on what you're using (and the platform). E.g. the compiler > itself runs without glibc on Linux, but if you need to use threads > for example that changes. Also if you link against libraries like GTK > or Qt you also indirectly link to glibc and the RTL's initialization > code will change due to this. > On some targets (e.g. macOS) using the C library is a must. > > Regards, > Sven Thanks, if I want to compile a program for Alpine Linux (musl libc instead of glibc) , is my best option to compile FPC&Lazarus from source?

As a first step you could simply test whether the existing binaries work, cause the C library is entered as "libc.so.6" into the ELF file. If it doesn't start and complains about a missing library then you should recompile both from source.

Regards,
Sven

Reply by email

Michael Van Canneyt
to Nozz: Thanks, if I want to compile a program for Alpine Linux (musl libc instead of glibc) , is…
Nozz wrote 13 lines
On Monday, May 6, 2019 10:48 PM, Sven Barth wrote: > Nozz via fpc-pascal schrieb am Mo., 6. Mai 2019, 22:18: > >> Empty Message > > Depends on what you're using (and the platform). E.g. the compiler itself runs without glibc on Linux, but if you need to use threads for example that changes. Also if you link against libraries like GTK or Qt you also indirectly link to glibc and the RTL's initialization code will change due to this. > On some targets (e.g. macOS) using the C library is a must. > > Regards, > Sven Thanks, if I want to compile a program for Alpine Linux (musl libc instead of glibc) , is my best option to compile FPC&Lazarus from source?

That should not be necessary.

The programs that need the C library use the system installed C library. If this is libc instead of glibc, then that will be used, there is no explicit reference to gnu libc.

Michael.

Reply by email

Sven Barth
to Michael Van Canneyt

Michael Van Canneyt schrieb am Di., 7. Mai 2019,
08:32:

Show quoted text 31 lines
On Mon, 6 May 2019, Nozz via fpc-pascal wrote: > On Monday, May 6, 2019 10:48 PM, Sven Barth wrote: > >> Nozz via fpc-pascal schrieb am Mo., 6. Mai 2019, 22:18: >> >>> Empty Message >> >> Depends on what you're using (and the platform). E.g. the compiler itself runs without glibc on Linux, but if you need to use threads for example that changes. Also if you link against libraries like GTK or Qt you also indirectly link to glibc and the RTL's initialization code will change due to this. >> On some targets (e.g. macOS) using the C library is a must. >> >> Regards, >> Sven > > Thanks, if I want to compile a program for Alpine Linux (musl libc instead of glibc) , is my best option to compile FPC&Lazarus from source? That should not be necessary. The programs that need the C library use the system installed C library. If this is libc instead of glibc, then that will be used, there is no explicit reference to gnu libc.

It depends whether the musl libc also leads to the inclusion of "libc.so.6" in the ELF files. If yes, then all should be good (except if not all calls are available, but then recompilation wouldn't help either), if not everything needs to be rebuild so that the correct C library is entered in the ELF.

Regards,
Sven

Reply by email

Marco van de Voort
to Sven Barth

Op 5/7/2019 om 11:14 AM schreef Sven Barth via fpc-pascal:

Show quoted text 5 lines
It depends whether the musl libc also leads to the inclusion of "libc.so.6" in the ELF files. If yes, then all should be good (except if not all calls are available, but then recompilation wouldn't help either), if not everything needs to be rebuild so that the correct C library is entered in the ELF.

The symbols used in the startup code and threadvar errno are other things that come to mind as possible problems.

Reply by email