From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
To: Peng Yu <pengyu.ut@gmail.com>
Cc: Florian Weimer <fweimer@redhat.com>,
Peng Yu via Libc-help <libc-help@sourceware.org>
Subject: Re: Directory structure of glibc and header files installed on Linux
Date: Thu, 4 Mar 2021 16:58:40 -0300 [thread overview]
Message-ID: <CAMXh4bW7S5mOqpXYnJKRvZZ-Qa8w5rC=6L=E-ogR9eUMzXJf-Q@mail.gmail.com> (raw)
In-Reply-To: <CABrM6wkbxM=8=8a-crsf=YOnF2y3bUF=roqeiqUDYaWXaYcAQg@mail.gmail.com>
On Thu, Mar 4, 2021 at 1:56 PM Peng Yu <pengyu.ut@gmail.com> wrote:
>
> Hi Adhemerval and Florian,
>
> > That's why the simplest solution is as Florian has put it to build a
> > glibc to the target you want to
> > inspect and check the installed headers.
>
> I don't understand this part. When it is installed, it does copies or
> symlinks? If it is just copies, how to tell where they are originally
> from? How to avoid the conflict between user installed libc vs the
> system default installed libc (as. libc6-dev in debian lineage)?
It always copy, there is no symlink involved in the installation. Also, there is
nothing preventing you to wreck your system by installing a glibc over the
system one (you should not do it unless you know *exactly* what you are
doing).
The usual process of installing the glibc is during either a work rebuild on a
sysroot (like Linux From Scratch does) or within a sysroot (like
build-many-glibcs.py
does).
>
> Do you have to build glibc before running build-many-glibcs.py? How to
> run build-many-glibcs.py? It seems that it have options. I am not sure
> what options I should use. Could you show me the complete command?
The build-many-glibcs.py requires some tools, like a working gcc, python3,
bison, and the other usual tools required to build gcc and glibc. The simplest
way to use is:
(1) glibc-git$ ./scripts/build-many-glibcs.py checkout
/path/to/place/source/and/binaries
(2) glibc-git$ ./scripts/build-many-glibcs.py host-libraries
(3) glibc-git$ ./scripts/build-many-glibcs.py compilers x86_64-linux-gnu
(4) glibc-git$ ./scripts/build-many-glibcs.py glibcs x86_64-linux-gnu
The (1) will download the required source (binutils, linux, gcc,
glibc, math libraries), (2) will
build the math libraries used in gcc built, (3) will build a bootstrap
compiler targetting
x86_64-linux-gnu, and finally (4) will build a glibc using the
bootstrap compiler built.
>
> Does macOS use glibc?
No, macOS uses its own libc implementation. And there is no glibc
support for macOS,
neither in plan.
>
> On macOS, I see this.
>
> $ gcc -E -dD - <<< '#include <sys/socket.h>' |grep '^#define SOL_'
> #define SOL_SOCKET 0xffff
>
> On Linux, I see this. Is that macOS uses a completely different libc
> library? Or glibc has a specific target for macOS?
Yes, macOS uses https://opensource.apple.com/source/Libc/
>
> $ gcc -E -dD - <<< '#include <sys/socket.h>' |grep '^#define SOL_'
> #define SOL_RAW 255
> #define SOL_DECNET 261
> #define SOL_X25 262
> #define SOL_PACKET 263
> #define SOL_ATM 264
> #define SOL_AAL 265
> #define SOL_IRDA 266
> #define SOL_NETBEUI 267
> #define SOL_LLC 268
> #define SOL_DCCP 269
> #define SOL_NETLINK 270
> #define SOL_TIPC 271
> #define SOL_RXRPC 272
> #define SOL_PPPOL2TP 273
> #define SOL_BLUETOOTH 274
> #define SOL_PNPIPE 275
> #define SOL_RDS 276
> #define SOL_IUCV 277
> #define SOL_CAIF 278
> #define SOL_ALG 279
> #define SOL_NFC 280
> #define SOL_KCM 281
> #define SOL_TLS 282
> #define SOL_XDP 283
> #define SOL_SOCKET 1
>
> --
> Regards,
> Peng
next prev parent reply other threads:[~2021-03-04 19:58 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-04 2:37 Peng Yu
2021-03-04 10:57 ` Florian Weimer
2021-03-04 14:19 ` Peng Yu
2021-03-04 14:41 ` Adhemerval Zanella
2021-03-04 16:56 ` Peng Yu
2021-03-04 19:58 ` Adhemerval Zanella [this message]
2021-03-04 22:37 ` Peng Yu
2021-03-04 23:01 ` Konstantin Kharlamov
2021-03-05 2:38 ` Peng Yu
2021-03-05 11:19 ` Adhemerval Zanella
2021-03-05 0:07 ` Adhemerval Zanella
2021-03-05 2:30 ` Peng Yu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAMXh4bW7S5mOqpXYnJKRvZZ-Qa8w5rC=6L=E-ogR9eUMzXJf-Q@mail.gmail.com' \
--to=adhemerval.zanella@linaro.org \
--cc=fweimer@redhat.com \
--cc=libc-help@sourceware.org \
--cc=pengyu.ut@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).