mailing list of musl libc
 help / color / mirror / code / Atom feed
From: Rich Felker <dalias@libc.org>
To: alice <alice@ayaya.dev>
Cc: musl@lists.openwall.com
Subject: Re: [musl] Compile gcc-12 with musl and report errors
Date: Mon, 13 Feb 2023 09:23:40 -0500	[thread overview]
Message-ID: <20230213142340.GR4163@brightrain.aerifal.cx> (raw)
In-Reply-To: <CQHHW3CQV73Z.2DWR5AVWJXF9L@sumire>

On Mon, Feb 13, 2023 at 03:12:38PM +0100, alice wrote:
> On Mon Feb 13, 2023 at 1:17 PM CET, 花静云 wrote:
> > Hi:
> > I installed the Alpine Linux system on the x86_64 platform, and exposed a
> > problem when compiling gcc 12 using musl (master branch) in this system:
> > ​/usr/lib/gcc/x86_64-alpine-linux-musl/12.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: d/common-outbuffer.o: in function `_D3dmd6common4file__T11FileMappingThZQq6__ctorMFNbNcxPaZSQCdQCcQBy__TQBwThZQCc':
> > outbuffer.d:(.text+0x29f): undefined reference to `mmap64'
> >  
> > I uploaded more detailed logs to gcc_ build_ Error.log file,and other information is as follows:
> > 1、linux-lts(kernel)version:6.1.10-r0
> > 2、gcc version:12.2.1_git20220924-r9
> > 3、binutils version:binutils-2.40-r4
> > 4、musl:master branch and commit is f47a8cdd250d9163fcfb39bf4e9d813957c0b187
> >
> > I suspect that the error is caused by the difference of the musl code,When
> > I checked musl source, I found that there was a big difference between the
> > master branch code and the v1.2.3 version code. For example, a large number of
> > weaks_alias were removed during the 246f1c811448f37a44b41cd8df8d0ef9736d95f4
> > commit,include “weak_alias(mmap, mmap64);” in src/mman/mmap.c.
> 
> yes, as that commit says, this was intentional. code is _not_ meant to call
> these *64 functions that were removed- code should unconditionally call `mmap`
> and use -D_FILE_OFFSET_BITS=64 (for C) . so, gcc (the D frontend here) needs fixing.
> 
> specifically, it's libphobos/libdruntime/core/sys/posix/sys/mman.d ,
> 
> where:
> 
>  else version (CRuntime_Musl)
>  {
>      static if (__USE_LARGEFILE64) void* mmap64(void*, size_t, int, int, int, off_t);
>      static if (__USE_FILE_OFFSET64)
>          alias mmap = mmap64;
>      else
>          void* mmap(void*, size_t, int, int, int, off_t);
>      int munmap(void*, size_t);
>  }
> 
> probably does something like expose the mmap64 symbol (no idea what this code means).
> maybe __USE_LARGEFILE64 has to be unset for it?

Well, it's a bug that they're poking at glibc-internal macros (and
possibly defining these themselves?) rather than performing a
configure test. Especially since they apparently hardcoded as
CRuntime_Musl profile with wrong information about musl...

Assuming they don't want to fix the hard-coding, the above should just
be (and should always have been):

else version (CRuntime_Musl)
{
    void* mmap(void*, size_t, int, int, int, off_t);
    int munmap(void*, size_t);
}

with no mention of mmap64 or glibc macros.

Anyone up for sending a bug report and patch to gcc (or perhaps dmd
upstream)?

In any case, unless you're using the D language, this entire problem
can be avoided by just not enabling it in --enable-languages.

Rich

      parent reply	other threads:[~2023-02-13 14:23 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-13 12:17 花静云
2023-02-13 14:12 ` alice
2023-02-13 14:17   ` David Wang
2023-02-13 14:26     ` Rich Felker
2023-02-13 14:23   ` Rich Felker [this message]

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=20230213142340.GR4163@brightrain.aerifal.cx \
    --to=dalias@libc.org \
    --cc=alice@ayaya.dev \
    --cc=musl@lists.openwall.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.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

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 NNTP newsgroup(s).