public inbox for libc-help@sourceware.org
 help / color / mirror / Atom feed
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

  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).