From: "Ronald S. Bultje" <rsbultje@gmail.com>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] [Question] Technical reason why FFmpeg sets a mstack-alignment value on compile time?
Date: Sun, 13 Nov 2022 09:44:56 -0500
Message-ID: <CAEEMt2mknCq8X_j-h5an7JzMfPxqv0mC6oi5XrBkCrhUpRDwkQ@mail.gmail.com> (raw)
In-Reply-To: <cd2c6be5-c30c-c4e2-959b-88b73077f617@web.de>
Hi,
On Sun, Nov 13, 2022 at 8:47 AM Nomis101 <Nomis101@web.de> wrote:
> Am 12.11.22 um 23:09 schrieb Ronald S. Bultje:
> > Hi,
> >
> > On Sat, Nov 12, 2022 at 1:57 PM Nomis101 <Nomis101@web.de> wrote:
> >
> >> Hi.If building FFmpeg, configure does set a value for mstack-alignment,
> >> for example on macOS
> >> -mstack-alignment=16. On HandBrake we found there is an issue with
> current
> >> Clang in Xcode about
> >> conflicting 'override-stack-alignment' values if we build with ThinLTO.
> >>
> >> "ld: linking module flags 'override-stack-alignment': IDs have
> conflicting
> >> values"
> >>
> >> I found out why this is. x264 does set -mstack-alignment=64 in
> configure,
> >> FFmpeg does set
> >> -mstack-alignment=16 and this seems to be a conflict when linking. If I
> >> modify both configure files
> >> and remove the mstack-alignment part, then the build does finish with no
> >> error.
> >>
> >> And here comes my questions. I was wondering, about the technical reason
> >> why FFmpeg does set
> >> mstack-alignment? And if it would be safe to disable it in case FFmpeg
> is
> >> compiled with ThinLTO (for
> >> HandBrake)?
> >>
> >
> > It can safely be set to the higher of the two values, it has the same
> > meaning. Alignment of 64 implies alignment of 16.
> Thanks. I found out, that its enough to disable the mstack-alignment part
> for x264 in case of
> ThinLTO. This will also fix the error.
>
For people looking at this in the archives after a google search, trying
this out and wondering why their x264 crashes, please see the following
reference:
https://mailman.videolan.org/pipermail/x264-devel/2022-November/012963.html
(Summary: if you remove the stack alignment in x264, please also remove the
assumption in x264's build that the stack *is* in fact aligned, and then
everything will work fine (although a few instructions slower).)
Ronald
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
prev parent reply other threads:[~2022-11-13 14:45 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-12 18:57 Nomis101
2022-11-12 19:07 ` Carl Eugen Hoyos
2022-11-12 23:09 ` Ronald S. Bultje
2022-11-13 13:46 ` Nomis101
2022-11-13 14:44 ` Ronald S. Bultje [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=CAEEMt2mknCq8X_j-h5an7JzMfPxqv0mC6oi5XrBkCrhUpRDwkQ@mail.gmail.com \
--to=rsbultje@gmail.com \
--cc=ffmpeg-devel@ffmpeg.org \
/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
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git