Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 649798 - =media-video/vlc-3.0.1-r1 on arm with USE=neon errors with: audio_filter/channel_mixer/simple.c:262:25: fatal error: simple_neon.h: No such file or directory
Summary: =media-video/vlc-3.0.1-r1 on arm with USE=neon errors with: audio_filter/chan...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: ARM Linux
: Normal normal (vote)
Assignee: Gentoo Media-video project
URL:
Whiteboard: fixed in 3.0.3
Keywords:
Depends on: 649814
Blocks:
  Show dependency tree
 
Reported: 2018-03-06 21:03 UTC by tt_1
Modified: 2018-05-31 21:16 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build.log.gz (vlc-3.0.0-arm.log.gz,31.29 KB, application/gzip)
2018-03-06 21:03 UTC, tt_1
Details
output of emerge --info (emerge-info,4.75 KB, text/plain)
2018-03-06 21:05 UTC, tt_1
Details
fix for missing file (0001-arm-make-the-assembler-functions-compatible-with-non.patch,2.06 KB, patch)
2018-03-19 16:14 UTC, tt_1
Details | Diff
patch for the missing simple_neon.h (vlc-3.0.2-add-missing-neon-h.patch,3.23 KB, patch)
2018-05-18 06:58 UTC, tt_1
Details | Diff
upstream patch (vlc-3.0.3-fix-disable-vlm.patch,1.33 KB, patch)
2018-05-29 16:34 UTC, tt_1
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description tt_1 2018-03-06 21:03:31 UTC
Created attachment 522624 [details]
build.log.gz

I used the following useflags: 

[ebuild     U ~] media-video/vlc-3.0.0-r3:0/5-9::gentoo [2.2.8-r1:0/5-8::gentoo] USE="X alsa dbus encode ffmpeg flac gcrypt libsamplerate matroska mp3 ncurses neon ogg qt5 ssl%* -a52 (-altivec) (-aom) -archive% -bidi -bluray -cddb (-chromaprint) -chromecast% -dc1394 -debug (-directx) -dts -dvbpsi -dvd -faad -fdk -fluidsynth -fontconfig -gme -gnome-keyring% -gstreamer (-ieee1394) -jack -jpeg -kate -libass -libav -libcaca -libnotify -libtar -libtiger -linsys (-lirc) -live -lua -macosx-notifications% (-macosx-qtkit) (-microdns) -modplug -mpeg (-mtp) -musepack -nfs% -omxil (-opencv) -optimisememory -opus -png -postproc (-projectm) -pulseaudio -rdp -rtsp -run-as-root -samba -schroedinger -sdl-image -sftp -shout (-sid) -skins -speex -svg -taglib {-test} -theora -tremor -truetype -twolame -udev (-upnp) -v4l (-vaapi) -vcd% (-vdpau) -vnc -vorbis -vpx -wayland% -wma-fixed -x264 -x265 -xml -zeroconf -zvbi (-aalib%) (-atmo%) (-audioqueue%) (-avcodec%*) (-avformat%*) (-cdda%) (-dvb%) (-dxva2%) (-gnome%) (-gnutls%) (-growl%) (-httpd%) (-macosx-dialog-provider%) (-macosx-eyetv%) (-macosx-quartztext%) (-opengl%) (-sdl%) (-swscale%*) (-vcdx%) (-vlm%) (-xcb%*) (-xv%)" 0 KiB
Comment 1 tt_1 2018-03-06 21:05:26 UTC
Created attachment 522626 [details]
output of emerge --info

my active version of gcc is 6.4.0
Comment 2 tt_1 2018-03-07 09:41:40 UTC
This was fixed in vlc-3.0.1, I opened a revbump request and made this bug depend on it. So it can be closed as resolved when the revbump hits the tree.
Comment 3 Alexey Korepanov 2018-03-19 15:51:08 UTC
I got an error trying to compile with vlc-3.0.1 on arm64:

video_filter/deinterlace/merge_arm64.S:22:10: fatal error: ../../arm_neon/asm.S: No such file or directory
#include "../../arm_neon/asm.S"
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

Is it in any way related to this bug?
Comment 4 tt_1 2018-03-19 15:59:08 UTC
If I can recall it correctly, this bug here was solved by inheriting arm_neon/asm.S, but it was somehow forgotten to include it into the source tarballs they provide. It lives happily ever after in the git source tree, until vlc-3.0.2 is going to be released into the wild ;-) 

Stick to the vlc-3.0.9999 ebuild if you need vlc-3.0.x, or wait a few days, weeks .. ??
Comment 5 Alexey Korepanov 2018-03-19 16:07:49 UTC
ok, thanks for the info. I guess I should not create a new bug for this. I can mask vlc-3.0.1 for the time being. Or maybe this can be fixed with a patch?

On something unrelated: does the "neon" use flag makes any difference for vlc on arm64? All arm64 processors support neon, and in chromium ebuild it does not have any effect. What about vlc?
Comment 6 tt_1 2018-03-19 16:14:06 UTC
Created attachment 524394 [details, diff]
fix for missing file

This is the commit they forgot to include into the source tarballs. Should fix your problems, if not take the 3.0.9999 live ebuild, as I mentioned before. For the rest, I don't know a thing about aarch64.
Comment 7 Alexey Korepanov 2018-03-19 17:04:37 UTC
Thanks! The patch worked beautifully.

May I suggest to add this patch to the ebuild in the gentoo tree? Most arm users accept ~arm/~arm64 keywords (because stable versions of packages are mostly unavailable, like it is with vlc). So this bug is about to hit a number of people.

The patch is short, and I'd say it is worth adding it.
Comment 8 Alexey Korepanov 2018-03-19 17:08:42 UTC
I can create a PR on github if it helps.
Comment 9 tt_1 2018-03-19 17:16:19 UTC
arm bugs are vastly ignored, unfortunateley. The vlc team is already assigned to this bug, so they should know about it. If it really matters for you, go to irc and poke them ;-) 

ah, and if you're running a desktop, it would be great if you can test the next firefox-esr, 60.0, or 59.0 and scrutinize it as much as you can.
Comment 10 Alexey Korepanov 2018-03-19 17:19:46 UTC
I have an arm64 laptop. I can surely test firefox. In fact, I have been trying to compile versions 52 and 58, but had no luck. There are open bugs for that.
Comment 11 tt_1 2018-03-19 17:29:06 UTC
You can write me an email if you want to, with the list of bugs, and I'll see if some of the arm fixes may work for you as well.
Comment 12 Larry the Git Cow gentoo-dev 2018-04-10 21:45:32 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8b1c79dc5982aa13d7fc4c6fce82e9febe4ed8f7

commit 8b1c79dc5982aa13d7fc4c6fce82e9febe4ed8f7
Author:     Andreas Sturmlechner <asturm@gentoo.org>
AuthorDate: 2018-04-10 21:39:20 +0000
Commit:     Andreas Sturmlechner <asturm@gentoo.org>
CommitDate: 2018-04-10 21:45:22 +0000

    media-video/vlc: Fix build with arm
    
    Thanks-to: tt_1 <herrtimson@yahoo.de>
    Tested-by: Alexey Korepanov <kaikaikai@yandex.ru>
    Closes: https://bugs.gentoo.org/649798
    Package-Manager: Portage-2.3.28, Repoman-2.3.9

 media-video/vlc/files/vlc-3.0.1-arm-neon-fix.patch | 65 ++++++++++++++++++++++
 media-video/vlc/vlc-3.0.1-r1.ebuild                |  1 +
 2 files changed, 66 insertions(+)
Comment 13 tt_1 2018-04-15 07:45:22 UTC
I have to say that it still fails for vlc-3.0.1-r1 with exactly the same error on arm, while the patch is applied and also simple_neon.h file is present. 

Still it is possible to use the 3.0.9999 live ebuild for the 3.0 branch, this compiles just fine, and no runtime issues either. Now, I double checked the git log to see if there is any commit that can be identified as having this fixed, but there is none from my point of view. 

The only difference in the ebuilds of the two is, that it bootstraps for the git checkout and not for the tarball sourced 3.0.1-r1, but I doubt this can explain the issue. 

Reopening, as fixed for arm64, but not for arm.
Comment 14 tt_1 2018-04-24 16:01:12 UTC
This bug does not appear with gcc-6.4.0 as a system compiler, but with gcc-7.3.0 it does. The live ebuild is not affected, and shuffling through it there is not much of a difference.
Comment 15 tt_1 2018-04-25 07:13:51 UTC
Ok, so I broke it down to problems with neon cflags. If you look at simple.c line 262, you'll see some awkward construction to include simple_neon.h if the build script detects the system as arm. Makes me wonder if this is related to android or cross compilers needs. 

My assumption right now would be to wait for vlc-3.0.2 to hit the tree, and to test it again with USE="+neon", and if it still fails to mask or remove the useflag for arm profiles and all non live-ebuilds.
Comment 16 tt_1 2018-04-26 19:23:20 UTC
When reading the include from simple.c, I get the impression this was written with cross compiling for android in mind. Therefore I opened a ticket at vlc bug tracker, if there is no reaction within a reasonable amount of time I'd suggest to mask the neon useflag for all tarball based ebuilds of vlc-3.0 or higher.
Comment 17 tt_1 2018-05-15 05:16:21 UTC
The vlc guys accepted the ticket and it is scheduled to be solved for vlc-3.0.3 release with high priority.
Comment 18 tt_1 2018-05-18 06:58:35 UTC
Created attachment 531974 [details, diff]
patch for the missing simple_neon.h

So it turns out the missing file was present all the time at the git tree, but was never included into the tarball. 

I attached it as a patch which can be applied to the 3.0.x ebuilds. 

I'll test it to see wether there are additional patches to be applied on top of it.
Comment 19 tt_1 2018-05-18 18:41:48 UTC
vlc-3.0.2 is confirmed to compile with the attached patch. Please bump the ebuild, thank you!
Comment 20 tt_1 2018-05-23 17:33:36 UTC
pullrequest opened: https://github.com/gentoo/gentoo/pull/8538
Comment 21 Andreas Sturmlechner gentoo-dev 2018-05-29 14:34:15 UTC
3.0.3 was already tagged (~40 hours ago), which means we do not have to revbump 3.0.2 for this fix anymore.
Comment 22 tt_1 2018-05-29 16:34:43 UTC
Created attachment 533946 [details, diff]
upstream patch

Yeah, but now USE="-encode" is broken. Architecture independent linking error: 

In function `VLMDialog::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)':
vlm.moc.cpp:(.text+0x20e): undefined reference to `VLMDialog::exportVLMConf()'
vlm.moc.cpp:(.text+0x22e): undefined reference to `VLMDialog::importVLMConf()'
vlm.moc.cpp:(.text+0x250): undefined reference to `VLMDialog::removeVLMItem(VLMAWidget*)'
vlm.moc.cpp:(.text+0x268): undefined reference to `VLMDialog::startModifyVLMItem(VLMAWidget*)'

and so on, and so forth. 

upstream fixed it some 40hrs after tagging 3.0.3 - https://git.videolan.org/?p=vlc/vlc-3.0.git;a=commit;h=49450a4ab90bba8530764c5cdb95d648aeda7d52

3.0.2 is not affected by the new regression, so pick your poison! ;)
Comment 23 Andreas Sturmlechner gentoo-dev 2018-05-31 20:59:23 UTC
(In reply to tt_1 from comment #22)
> upstream fixed it some 40hrs after tagging 3.0.3 -
> https://git.videolan.org/?p=vlc/vlc-3.0.git;a=commit;
> h=49450a4ab90bba8530764c5cdb95d648aeda7d52
> 
> 3.0.2 is not affected by the new regression, so pick your poison! ;)
Thanks for the warning! ;)
Comment 24 Larry the Git Cow gentoo-dev 2018-05-31 21:16:36 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=87ea358ab733755cd330c5d5191d79bf1be121e5

commit 87ea358ab733755cd330c5d5191d79bf1be121e5
Author:     Andreas Sturmlechner <asturm@gentoo.org>
AuthorDate: 2018-05-31 21:04:35 +0000
Commit:     Andreas Sturmlechner <asturm@gentoo.org>
CommitDate: 2018-05-31 21:16:17 +0000

    media-video/vlc: 3.0.3 version bump
    
    Closes: https://bugs.gentoo.org/649798
    Package-Manager: Portage-2.3.40, Repoman-2.3.9

 media-video/vlc/Manifest                           |   1 +
 .../vlc/files/vlc-3.0.3-fix-disable-vlm.patch      |  42 ++
 media-video/vlc/vlc-3.0.3.ebuild                   | 499 +++++++++++++++++++++
 3 files changed, 542 insertions(+)