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