Pale Moon SSE for Linux

For contributed third party builds not necessarily configured like the main product.
e.g. AVX builds, SSE builds, Pandora builds.
yami_

Re: Pale Moon SSE for Linux

Unread post by yami_ » 2018-06-29, 22:08

Another suggestion: surf (http://surf.suckless.org/). It uses webkit2gtk as its back end, so it will display most web sites properly. You should be able to compile it for non-SSE2 CPUs.

AthlonXPUser

Re: Pale Moon SSE for Linux

Unread post by AthlonXPUser » 2018-06-30, 12:50

Hi all,

Thank you for your suggestions, I've tried them all.
I will add here some info if somebody finds this thread because of searching for the similar problem I have.

W3M: install w3m-img and xterm too, then from xterm you can see some partially rendered flickering images in your console. It is more annoying than useful, so just use Lynx instead.
Dillo: It can render the simplest HTMLs only. Easily installable by apt-get, probably this is your best bet if you don't want to compile from source and messing with package conflicts.
Netsurf: I had to modify env.sh because of some openssl conflicts, then openssl-dev was missing at compile time but after I installed some package, it eventually compiled and worked. It gave me the best results, even more complex HTMLs are rendered well, it can display animated GIFs. In theory it can run JavaScript, but in practice not even the simplest JS menus or buttons worked for me. Don't expect Youtube or even Hooktube to work. You can open youtube links in VLC by the way.
Surf: I had to get the webkit gtk dev packages, after that it compiled but it cannot open any webpage. After a short time WebKit is crashing but the error report is crashing too when I try to see the details. The same happened while I was installing Lubuntu. There are those introductory "slideshows" while installing, I think they are HTMLs in an embedded web browser, because there I got the same WebKit is crashed issue. I suspect WebKit requires SSE2. I installed Epiphany which gave me the same issue, then I tried Konqueror which crashed with "Illegal instruction".

Latest releases:
Dillo: 2015 Jun 30
Netsurf: 2017 Oct 20
Firefox 52 ESR: last release will be at 2018 July 2.

Athlon XP and Pentium 3 users can use FF until it can load HTTPS websites. It can happen as it is happened before multiple times, that webpages will only open if the browser supports the latest SSL/TLS/whatever in the future.
Until then, users can grab it from here:
https://launchpad.net/~mozillateam/+archive/ubuntu/ppa
Last edited by AthlonXPUser on 2018-06-30, 12:52, edited 1 time in total.

AthlonXPUser

Re: Pale Moon SSE for Linux

Unread post by AthlonXPUser » 2018-07-02, 04:58

yami_ wrote:Another suggestion: surf (http://surf.suckless.org/). It uses webkit2gtk as its back end, so it will display most web sites properly. You should be able to compile it for non-SSE2 CPUs.
You mean I should compile webkit too? Surf's webpage tells: "Compile your own webkit or expect hell.". I tried to compile webkit, it took 30 (thirty) fucking hours on my Athlon XP when it said it failed to generate the documentation:
WARNING:root:Running scanner failed: -4, command: ./webkitdomgtk-4.0-scan
Traceback
...
Exception: gtkdoc-scangobj produced a non-zero return code 252
ninja: build stopped: subcommand failed.
Last edited by AthlonXPUser on 2018-07-02, 05:13, edited 2 times in total.

AthlonXPUser

Re: Pale Moon SSE for Linux

Unread post by AthlonXPUser » 2018-07-02, 05:36

Serpentine wrote:P.S.: May I ask you if you know an e-mail client working without SSE2? Recent Thunderbird stopped working and the old versions are full of vulnerabilities. I searched several days already without any useful result.
On Lubuntu there is Slypheed, it works on my non-SSE2 PC, although I don't use it.

yami_

Re: Pale Moon SSE for Linux

Unread post by yami_ » 2018-07-02, 10:11

AthlonXPUser wrote:You mean I should compile webkit too? Surf's webpage tells: "Compile your own webkit or expect hell.". I tried to compile webkit, it took 30 (thirty) fucking hours on my Athlon XP when it said it failed to generate the documentation
And generating documentation was probably one of the last things it needs to do... Yes, I suggested you should compile your own webkit. But seems that you won't be able to do this. Well, you use Lubuntu, right? If so, there is surf package available for Ubuntu based distros (I have discovered it today). You could try to install it this way. The 2.x versions use webkit2gtk and 0.x versions should use older webkitgtk.

AthlonXPUser

Re: Pale Moon SSE for Linux

Unread post by AthlonXPUser » 2018-07-02, 17:57

Thanks for the suggestion. I removed my own surf first to make sure I'm not using that accidentally. I tried the ubuntu package but got the same result. In the window title it goes for 10% for a second and then back to 0% and then nothing happens.

But I found another browser, easily installable by apt-get install midori. Yes, it is called Midori, last version was released 3 years ago and it is using some older webkit version, the package (for webkit) is different also. It renders everything perfectly, JS works everywhere, it can even play back 360p videos in fullscreen from hooktube.com (not that I want to, just for testing). It will be good if I need to grab something from the web.

But to be honest, anybody just could grab Firefox ESR 52.9 from the archives, because it is not 3 years old and knows much more. This Midori browser is not really maintained anymore, I would consider it dead.
Last edited by AthlonXPUser on 2018-07-02, 17:59, edited 1 time in total.

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35402
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: Pale Moon SSE for Linux

Unread post by Moonchild » 2018-07-02, 18:09

If you're opting to use a 3 year old other browser that hasn't been updated, then you may as well stay with the latest SSE version of Pale Moon which has better TLS support, is up-to-date to the same level as Firefox ESR52 for sec updates.
No reason to step back a few years just because our next milestone won't have an SSE version -- the current one won't suddenly stop working, you know? :)

Just saying...
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

AthlonXPUser

Re: Pale Moon SSE for Linux

Unread post by AthlonXPUser » 2018-07-02, 18:47

Sure, I know. But this is what I also think, see my last line of previous post.

Bottom line is, there is no browser left ON EARTH which gets regular updates and doesn't require SSE2.
Internet Explorer would have been supported until January 2020, but M$ fucked up the Spectre mitigation in February 2018 and since then Win7 requires SSE2.

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35402
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: Pale Moon SSE for Linux

Unread post by Moonchild » 2018-07-02, 21:05

AthlonXPUser wrote:Bottom line is, there is no browser left ON EARTH which gets regular updates and doesn't require SSE2.
You do realize why this is, right?
It's because the web has been transformed from what was primarily an information source of hypertext/interlinked documents to something that requires the complexity and computing power of a modern top-shelf game in a browser. That comes at a cost. This is why SSE2 is an essential requirement (since not using those instructions would make the result unbearably slow, even on later hardware), so is plenty of memory to use.
Just like you can't play modern games on your Athlon XP, you also can't expect web browsers to target it as a valid computing platform -- the demands on the web side are simply too high.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

AthlonXPUser

Re: Pale Moon SSE for Linux

Unread post by AthlonXPUser » 2018-07-03, 05:30

Websites shouldn't even demand JavaScript to work. JavaScript could make the website more convenient to use but every feature should work without JavasScript too, if it will cause to do a full page reload, then let it be. I cannot use a lot of websites because if JS is turned off, it is not possible to open the menu, to close a warning popup, etc. All of these could be done with CSS only. Websites need a lot of computing power because a lot of website is needed but only a few real developers know how to build a website properly, the others are putting a lot of garbage into their site plus the hundreds of trackers etc. make it slow. SSE2 shouldn't be needed to open a news website, not even MMX. To play a video, maybe, but hey, anybody could place a download button and then the user could play it back with VLC.

A website is HTML+CSS, anything what requires JS is a web app. Yeah, an application.

On Athlon XP I could play with new games too. New games don't always mean it has high-end graphics, there are a lot of retro games released in the last few years out there which could run. But they can't because developers forget to disable emitting SSE2 instructions when compiling the game.

roytam1

Re: Pale Moon SSE for Linux

Unread post by roytam1 » 2018-07-03, 05:40

AthlonXPUser wrote:Sure, I know. But this is what I also think, see my last line of previous post.

Bottom line is, there is no browser left ON EARTH which gets regular updates and doesn't require SSE2.
Internet Explorer would have been supported until January 2020, but M$ fucked up the Spectre mitigation in February 2018 and since then Win7 requires SSE2.
maybe TenFourFox? but they aim for supporting PowerPC Macs, directly compile it may not work.
BTW I cherry-picked (most of) their patches into my branch (aim for win32 vs2013), untested with Linux platform at all. You may try compiling it.
Last edited by roytam1 on 2018-07-03, 05:41, edited 2 times in total.

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35402
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: Pale Moon SSE for Linux

Unread post by Moonchild » 2018-07-03, 17:05

AthlonXPUser wrote:Websites shouldn't even demand JavaScript to work.
Yes they should.

I've said it plenty of times before and I'll keep saying it, regardless of certain people being convinced of the opposite: JavaScript is one of the three key technologies that work together to provide you with web content. These three (HTML, CSS and JS) have to be in balance though and that is where things go wrong in these frameworks. In these frameworks, JS is not only used for dynamic content, but for actual document structure (which is HTML's task) and styling/display (which is CSS's task).
Any imbalance between the three makes for poor webdesign IMHO. But discarding the importance of JS and saying "every site should work without it" is also wrong, because having NO scripting for a modern site is also an imbalance, because it takes away the interactive properties of it.
Last edited by Moonchild on 2018-07-03, 17:11, edited 1 time in total.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

AthlonXPUser

Re: Pale Moon SSE for Linux

Unread post by AthlonXPUser » 2018-07-04, 18:35

Off-topic:
In overall, I agree with you. But a lot of sites (web apps) are abusing JS so they can lock users out. For example reddit.com or twitter.com. You cannot use them without JS anymore, they were working just fine before. I just want to read some content, no interactivity needed. Damn, some dude even created a twitter client for Commodore 64. But of course, they have their reasons to make their website (since JS requirement, their "web app") unusable. They often also have annoying huge message boxes which you cannot close to install their crapware app. So if you install them, it is harder to block their ads and they can steal and sell your personal data from your phone. Or you enable JS and having cryptominers draining your battery, ads consuming your data plan, hackers exploiting JS vulnerabilities, data retailers fingerprint your browser, etc. All this because some dumb web "programmers" cannot create a CSS only menu which doesn't require JS. Another example when once I saw a webpage, it had only full static content, but it didn't show anything until you enabled JS because it was an Angular app. Why the hell somebody use an angular app for a full static webpage which could be done with HTML+CSS only?

AthlonXPUser

Re: Pale Moon SSE for Linux

Unread post by AthlonXPUser » 2018-07-04, 18:39

roytam1 wrote:You may try compiling it.
I would love to try it. I checked the compile instructions on Mozilla's page, but it is starting with "You must have a 64 bit processor". So I guess the instructions there won't be the same as for this ESR 45 version. Could you please provide me the compile instructions? You said you only done it for Windows, that would be a good starting point too for me.
Last edited by AthlonXPUser on 2018-07-04, 18:39, edited 1 time in total.

yami_

Re: Pale Moon SSE for Linux

Unread post by yami_ » 2018-07-04, 19:25

Build instructions for Linux are here. Keep in mind that Pale Moon is larger than webkit.

AthlonXPUser

Re: Pale Moon SSE for Linux

Unread post by AthlonXPUser » 2018-07-07, 08:07

roytam1 wrote: maybe TenFourFox? but they aim for supporting PowerPC Macs, directly compile it may not work.
BTW I cherry-picked (most of) their patches into my branch (aim for win32 vs2013), untested with Linux platform at all. You may try compiling it.
Tenfourfox doesn't compile for some unknown reason, I don't even see where exactly it fails.
Regarding your branch, I was struggling to compile it for a few hours then I gave up. Long story short: C++ cannot compile StackWalk.cpp for some reason. I'm using the recommended GCC 4.9.

But I tried K-Meleon (I like its name, very funny) with WINE, and it works. I see it is currently made from FF 52.9 (what you have just released today). In the future, will it support machines without SSE2?
Last edited by AthlonXPUser on 2018-07-07, 08:08, edited 2 times in total.

roytam1

Re: Pale Moon SSE for Linux

Unread post by roytam1 » 2018-07-07, 12:34

AthlonXPUser wrote:
roytam1 wrote: maybe TenFourFox? but they aim for supporting PowerPC Macs, directly compile it may not work.
BTW I cherry-picked (most of) their patches into my branch (aim for win32 vs2013), untested with Linux platform at all. You may try compiling it.
Tenfourfox doesn't compile for some unknown reason, I don't even see where exactly it fails.
Regarding your branch, I was struggling to compile it for a few hours then I gave up. Long story short: C++ cannot compile StackWalk.cpp for some reason. I'm using the recommended GCC 4.9.
Did you try using gcc/g++ 4.9.3?
and you may need setting "--enable-optimize=-Os" trying to tell compiler use less memory (and of course, resulting binary will be somewhat slower than regular build)
AthlonXPUser wrote:But I tried K-Meleon (I like its name, very funny) with WINE, and it works. I see it is currently made from FF 52.9 (what you have just released today). In the future, will it support machines without SSE2?
Off-topic:
No it doesn't use Fx52, thats Goanna 3.4.2 (i.e. Palemoon 27's engine)

AthlonXPUser

Re: Pale Moon SSE for Linux

Unread post by AthlonXPUser » 2018-07-07, 13:50

It is hard to install GCC 4.9.3 for Lubuntu 18.04. It is officially not supported anymore and only some 3rd party ppa has it. Still because of some dependencies sometimes at the end GCC 7.x will be available. A good build script would be needed which gets the correct packages before build, or even better a docker container, because I cannot reproduce the build environment.

I don't think it is some memory related issue, because I was watching htop and there were plenty of free memory during build.

If K-Meleon won't require SSE2 then it is the browser what people can use in the future instead of this Pale Moon SSE for Linux 3rd party build which won't be supported anymore. They just have to run K-Meleon via WINE.
Last edited by AthlonXPUser on 2018-07-07, 13:55, edited 2 times in total.

Walter Dnes
Astronaut
Astronaut
Posts: 650
Joined: 2015-07-30, 20:29
Location: Vaughan, ON, Canada

Re: Pale Moon SSE for Linux

Unread post by Walter Dnes » 2018-07-08, 04:24

Do you have any working GCC at all? If so, you can use it to build another GCC. Use the following script to build GCC 4.9.4 and install it into $HOME/gcc494 (root permission not required). It downloads all the tarballs and extracts them. You might want to create a directory $HOME/gccstuff, and run it from there, to keep your $HOME top-level directory cleaner.

Code: Select all

#!/bin/bash
#
# Instructions adapted from https://gcc.gnu.org/wiki/InstallingGCC

wget http://ftpmirror.gnu.org/gcc/gcc-4.9.4/gcc-4.9.4.tar.bz2
tar xjf gcc-4.9.4.tar.bz2

#
# To get gmp, mpc, mpfr, and isl libs
# You *MUST* run this script from the top-level GCC source dir

cd gcc-4.9.4
contrib/download_prerequisites

export CFLAGS="-O2 -march=native -mfpmath=sse -fomit-frame-pointer -pipe"
export CXXFLAGS="${CFLAGS}"

#
# You *MUST NOT* run ./configure from the toplevel GCC source dir

mkdir gcc-build && cd gcc-build

../configure --prefix=$HOME/gcc494 \
             --disable-multilib \
             --enable-libstdcxx-threads \
             --enable-libstdcxx-time \
             --enable-shared \
             --enable-__cxa_atexit \
             --disable-libunwind-exceptions \
             --disable-libada

make install
Note that $HOME/gcc494 is not the default GCC. In your build script you have to include the following code (or "source" it) to actually use GCC 4.9.4...

Code: Select all

export GCCX_ROOT=$HOME/gcc494
export PATH=$GCCX_ROOT/bin:$PATH
export MANPATH=$GCCX_ROOT/share/man:MANPATH
export INFOPATH=$GCCX_ROOT/share/info:$INFOPATH
export LD_LIBRARY_PATH=$GCCX_ROOT/lib:$GCCX_ROOT/lib:$LD_LIBRARY_PATH
export LD_RUN_PATH=$GCCX_ROOT/lib:$GCCX_ROOT/lib:$LD_RUN_PATH
export LIBRARY_PATH=$GCCX_ROOT/lib:$GCCX_ROOT/lib:$LIBRARY_PATH
export INCLUDE_PATH=$GCCX_ROOT/include:$INCLUDE_PATH
export CPLUS_INCLUDE_PATH=$GCCX_ROOT/include:$CPLUS_INCLUDE_PATH
export C_INCLUDE_PATH=$GCCX_ROOT/include:$C_INCLUDE_PATH
There's a right way
There's a wrong way
And then there's my way

AthlonXPUser

Re: Pale Moon SSE for Linux

Unread post by AthlonXPUser » 2018-07-08, 08:45

Yes, I have multiple working GCCs:

Code: Select all

$ gcc --version
gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0

Code: Select all

$ gcc-4.9 --version
gcc-4.9 (Ubuntu 4.9.3-13ubuntu2) 4.9.3
In my .mozconfig i've added these:

Code: Select all

export CC=gcc-4.9
export CXX=g++-4.9
After running ./mach build I can see stuff like that:

Code: Select all

 0:40.03 nsprpub> checking for gcc... (cached) gcc-4.9
 0:40.03 nsprpub> checking whether the C compiler works... yes
 0:40.03 nsprpub> checking for C compiler default output file name... a.out
 0:40.03 nsprpub> checking for suffix of executables...
 0:40.04 nsprpub> checking whether we are cross compiling... no
 0:40.04 nsprpub> checking for suffix of object files... (cached) o
 0:40.04 nsprpub> checking whether we are using the GNU C compiler... (cached) yes
 0:40.04 nsprpub> checking whether gcc-4.9 accepts -g... (cached) yes
 0:40.04 nsprpub> checking for gcc-4.9 option to accept ISO C89... (cached) none needed

Code: Select all

 0:44.80 js/src> checking for gcc... (cached) gcc
 0:44.80 js/src> checking whether the C compiler (gcc  ) works... yes
 0:44.80 js/src> checking whether the C compiler (gcc  ) is a cross-compiler... no
 0:44.80 js/src> checking whether we are using GNU C... (cached) yes
 0:44.80 js/src> checking whether gcc accepts -g... (cached) yes
 0:44.81 js/src> checking for c++... (cached) c++
 0:44.81 js/src> checking whether the C++ compiler (c++  ) works... yes
 0:44.81 js/src> checking whether the C++ compiler (c++  ) is a cross-compiler... no
 0:44.81 js/src> checking whether we are using GNU C++... (cached) yes
 0:44.81 js/src> checking whether c++ accepts -g... (cached) yes
As you can see, the build scripts find gcc-4.9 for something but gcc for the other. These are from the same build output, so I don't get it.
So I started to thinking how this is possible, then I realized that first I tried to build it with GCC 7.x, and when it failed, only after that I tried to compile it with 4.9. But it already cached the old build. So I've deleted the pmbuild folder, created an esr45build, and started all over. Now I see 4.9 everywhere in the console. I had to disable gstreamer in the .mozconfig because I didn't find the correct packages for it. Then I also had to disable crashreporter because it couldn't compile it. So after all of these, now it fails somewhere else, at Unified_cpp_ffmpeg_libav530.cpp. Memory usage was not maxed out. When I was building webkit it happened that the RAM was at 99% and also the swap is at 80%, but now this is not the case, swap is not even used.

OK, so this is the error:

Code: Select all

 1:17.64 Note: rebuild with "/usr/bin/make VERBOSE=1 all-local" to show all compiler parameters.
 1:20.42 Unified_cpp_ffmpeg_libav530.o
 1:24.88 In file included from /home/oldboi/esr45build/dom/media/platforms/ffmpeg/libav53/Unified_cpp_ffmpeg_libav530.cpp:2:0:
 1:24.88 /home/oldboi/Downloads/mozilla45esr-master/dom/media/platforms/ffmpeg/FFmpegAudioDecoder.cpp:19:46: error: conflicting declaration ‘int (* mozilla::avcodec_decode_audio4)(AVCodecContext*, AVFrame*, int*, const AVPacket*)’
 1:24.88                           int*,const AVPacket*) = nullptr;
 1:24.88                                               ^
 1:24.88 In file included from /home/oldboi/Downloads/mozilla45esr-master/dom/media/platforms/ffmpeg/FFmpegDataDecoder.h:11:0,
 1:24.89                  from /home/oldboi/Downloads/mozilla45esr-master/dom/media/platforms/ffmpeg/FFmpegAudioDecoder.h:10,
 1:24.89                  from /home/oldboi/Downloads/mozilla45esr-master/dom/media/platforms/ffmpeg/FFmpegAudioDecoder.cpp:10,
 1:24.89                  from /home/oldboi/esr45build/dom/media/platforms/ffmpeg/libav53/Unified_cpp_ffmpeg_libav530.cpp:2:
 1:24.90 /home/oldboi/Downloads/mozilla45esr-master/dom/media/platforms/ffmpeg/FFmpegFunctionList.h:8:9: note: previous declaration as ‘int (* mozilla::avcodec_decode_audio4)(AVCodecContext*, AVFrame*, int*, AVPacket*)’
 1:24.90  AV_FUNC(avcodec_decode_audio4, AV_FUNC_AVCODEC_ALL)
 1:24.90          ^
 1:24.91 /home/oldboi/Downloads/mozilla45esr-master/dom/media/platforms/ffmpeg/FFmpegLibs.h:33:49: note: in definition of macro ‘AV_FUNC’
 1:24.91  #define AV_FUNC(func, ver) extern typeof(func)* func;
 1:24.92                                                  ^
 1:24.92 In file included from /home/oldboi/esr45build/dom/media/platforms/ffmpeg/libav53/Unified_cpp_ffmpeg_libav530.cpp:2:0:
 1:24.92 /home/oldboi/Downloads/mozilla45esr-master/dom/media/platforms/ffmpeg/FFmpegAudioDecoder.cpp: In member function ‘virtual RefPtr<mozilla::MozPromise<mozilla::TrackInfo::TrackType, mozilla::MediaDataDecoder::DecoderFailureReason, true> > mozilla::FFmpegAudioDecoder<53>::Init()’:
 1:24.92 /home/oldboi/Downloads/mozilla45esr-master/dom/media/platforms/ffmpeg/FFmpegAudioDecoder.cpp:39:62: error: ‘avc_ptr’ is not a member of ‘mozilla::FFmpegRuntimeLinker’
 1:24.93      avcodec_decode_audio4 = (decltype(avcodec_decode_audio4))FFmpegRuntimeLinker::avc_ptr[_decode_audio4];
 1:24.93                                                               ^
 1:24.93 /home/oldboi/Downloads/mozilla45esr-master/dom/media/platforms/ffmpeg/FFmpegAudioDecoder.cpp:39:91: error: ‘_decode_audio4’ was not declared in this scope
 1:24.93      avcodec_decode_audio4 = (decltype(avcodec_decode_audio4))FFmpegRuntimeLinker::avc_ptr[_decode_audio4];
 1:24.93                                                                                            ^
 1:24.94 /home/oldboi/Downloads/mozilla45esr-master/dom/media/platforms/ffmpeg/FFmpegAudioDecoder.cpp:40:50: error: ‘avc_ptr’ is not a member of ‘mozilla::FFmpegRuntimeLinker’
 1:24.95      av_init_packet1 = (decltype(av_init_packet1))FFmpegRuntimeLinker::avc_ptr[_init_packet];
 1:24.95                                                   ^
 1:24.95 /home/oldboi/Downloads/mozilla45esr-master/dom/media/platforms/ffmpeg/FFmpegAudioDecoder.cpp:40:79: error: ‘_init_packet’ was not declared in this scope
 1:24.95      av_init_packet1 = (decltype(av_init_packet1))FFmpegRuntimeLinker::avc_ptr[_init_packet];
 1:24.96                                                                                ^
 1:25.28 In file included from /home/oldboi/esr45build/dom/media/platforms/ffmpeg/libav53/Unified_cpp_ffmpeg_libav530.cpp:29:0:
 1:25.28 /home/oldboi/Downloads/mozilla45esr-master/dom/media/platforms/ffmpeg/FFmpegH264Decoder.cpp: In member function ‘virtual RefPtr<mozilla::MozPromise<mozilla::TrackInfo::TrackType, mozilla::MediaDataDecoder::DecoderFailureReason, true> > mozilla::FFmpegH264Decoder<53>::Init()’:
 1:25.28 /home/oldboi/Downloads/mozilla45esr-master/dom/media/platforms/ffmpeg/FFmpegH264Decoder.cpp:92:60: error: ‘avc_ptr’ is not a member of ‘mozilla::FFmpegRuntimeLinker’
 1:25.29    avcodec_decode_video2 = (decltype(avcodec_decode_video2))FFmpegRuntimeLinker::avc_ptr[_decode_video2];
 1:25.29                                                             ^
 1:25.29 /home/oldboi/Downloads/mozilla45esr-master/dom/media/platforms/ffmpeg/FFmpegH264Decoder.cpp:92:89: error: ‘_decode_video2’ was not declared in this scope
 1:25.30    avcodec_decode_video2 = (decltype(avcodec_decode_video2))FFmpegRuntimeLinker::avc_ptr[_decode_video2];
 1:25.30                                                                                          ^
 1:25.30 /home/oldboi/Downloads/mozilla45esr-master/dom/media/platforms/ffmpeg/FFmpegH264Decoder.cpp:93:46: error: ‘avc_ptr’ is not a member of ‘mozilla::FFmpegRuntimeLinker’
 1:25.30    av_init_packet = (decltype(av_init_packet))FFmpegRuntimeLinker::avc_ptr[_init_packet];
 1:25.30                                               ^
 1:25.30 /home/oldboi/Downloads/mozilla45esr-master/dom/media/platforms/ffmpeg/FFmpegH264Decoder.cpp:93:75: error: ‘_init_packet’ was not declared in this scope
 1:25.31    av_init_packet = (decltype(av_init_packet))FFmpegRuntimeLinker::avc_ptr[_init_packet];
 1:25.31                                                                            ^
 1:26.17 
 1:26.17 In the directory  /home/oldboi/esr45build/dom/media/platforms/ffmpeg/libav53
 1:26.17 The following command failed to execute properly:
 1:26.17 g++-4.9 -o Unified_cpp_ffmpeg_libav530.o -c -I/home/oldboi/esr45build/dist/stl_wrappers -I/home/oldboi/esr45build/dist/system_wrappers -include /home/oldboi/Downloads/mozilla45esr-master/config/gcc_hidden.h -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/home/oldboi/Downloads/mozilla45esr-master/dom/media/platforms/ffmpeg/libav53 -I. -I/home/oldboi/Downloads/mozilla45esr-master/dom/media/platforms/ffmpeg -I/home/oldboi/Downloads/mozilla45esr-master/dom/media/platforms/ffmpeg/libav53/include -I../../../../../dist/include -I/home/oldboi/esr45build/dist/include/nspr -I/home/oldboi/esr45build/dist/include/nss -fPIC -DMOZILLA_CLIENT -include ../../../../../mozilla-config.h -MD -MP -MF .deps/Unified_cpp_ffmpeg_libav530.o.pp -Wall -Wempty-body -Woverloaded-virtual -Wsign-compare -Wwrite-strings -Wno-invalid-offsetof -Wcast-align -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -std=gnu++0x -pthread -pipe -DNDEBUG -DTRIMMED -g -Os -mtune=native -march=native -mfpmath=sse -fomit-frame-pointer /home/oldboi/esr45build/dom/media/platforms/ffmpeg/libav53/Unified_cpp_ffmpeg_libav530.cpp
 1:26.18 /home/oldboi/Downloads/mozilla45esr-master/config/rules.mk:956: recipe for target 'Unified_cpp_ffmpeg_libav530.o' failed
 1:26.18 make[5]: *** [Unified_cpp_ffmpeg_libav530.o] Error 1
 1:26.18 /home/oldboi/Downloads/mozilla45esr-master/config/recurse.mk:71: recipe for target 'dom/media/platforms/ffmpeg/libav53/target' failed
 1:26.18 make[4]: *** [dom/media/platforms/ffmpeg/libav53/target] Error 2
 1:26.18 /home/oldboi/Downloads/mozilla45esr-master/config/recurse.mk:32: recipe for target 'compile' failed
 1:26.19 make[3]: *** [compile] Error 2
 1:26.19 /home/oldboi/Downloads/mozilla45esr-master/config/rules.mk:547: recipe for target 'default' failed
 1:26.19 make[2]: *** [default] Error 2
 1:26.19 /home/oldboi/Downloads/mozilla45esr-master/client.mk:396: recipe for target 'realbuild' failed
 1:26.19 make[1]: *** [realbuild] Error 2
 1:26.19 client.mk:171: recipe for target 'build' failed
 1:26.19 make: *** [build] Error 2
 1:26.20 0 compiler warnings present.
Error running mach:

    ['build']

The error occurred in code that was called by the mach command. This is either
a bug in the called code itself or in the way that mach is calling it.

You should consider filing a bug for this issue.

If filing a bug, please include the full output of mach, including this error
message.

The details of the failure are as follows:

IOError: poll() gave POLLNVAL or POLLERR

  File "/home/oldboi/Downloads/mozilla45esr-master/python/mozbuild/mozbuild/mach_commands.py", line 429, in build
    monitor.finish(record_usage=status==0)
  File "/home/oldboi/Downloads/mozilla45esr-master/python/mozbuild/mozbuild/controller/building.py", line 236, in finish
    self.resources.stop()
  File "/home/oldboi/Downloads/mozilla45esr-master/testing/mozbase/mozsystemmonitor/mozsystemmonitor/resourcemonitor.py", line 289, in stop
    while self._pipe.poll(1):

This is the .mozconfig I used:

Code: Select all

# Please see https://www.palemoon.org/redist.shtml for restrictions when using the official branding.
ac_add_options --enable-official-branding
export MOZILLA_OFFICIAL=1
export CC=gcc-4.9
export CXX=g++-4.9
mk_add_options PYTHON=/usr/bin/python2
mk_add_options AUTOCONF=/usr/bin/autoconf-2.13
 
mk_add_options MOZ_CO_PROJECT=browser
ac_add_options --enable-application=browser
 
mk_add_options MOZ_OBJDIR=/home/$USER/esr45build/

mk_add_options MOZ_MAKE_FLAGS="-j1"
 
ac_add_options --enable-optimize="-Os -mtune=native -march=native -mfpmath=sse"
ac_add_options --with-pthreads
 
ac_add_options --disable-installer
ac_add_options --disable-updater

#ac_add_options --disable-tests
#ac_add_options --disable-mochitest
#ac_add_options --disable-libIDLtest
#ac_add_options --disable-glibtest

ac_add_options --disable-gstreamer
ac_add_options --disable-crashreporter

#ac_add_options --disable-devtools
#ac_add_options --disable-jemalloc
#ac_add_options --disable-shared-js

#ac_add_options --disable-webrtc
#ac_add_options --disable-debug-symbols
#ac_add_options --disable-update-packaging
#ac_add_options --disable-profiling
#ac_add_options --disable-js-diagnostics
#ac_add_options --disable-debug-js-modules
#ac_add_options --disable-trace-malloc

ac_add_options --enable-devtools
ac_add_options --enable-jemalloc
ac_add_options --enable-shared-js
 
ac_add_options --enable-release 
ac_add_options --enable-strip
 
ac_add_options --x-libraries=/usr/lib
When I tried to build GCC 4.9.4 based on your instructions, I got the following after make install:

Code: Select all

oldboi@oldboi-A7N8X2-0:~/Downloads/gcc-4.9.4/gcc-build$ make install
make[1]: Entering directory '/home/oldboi/Downloads/gcc-4.9.4/gcc-build'
/bin/bash ../mkinstalldirs /home/oldboi/gcc494 /home/oldboi/gcc494
/bin/bash: line 3: cd: ./fixincludes: No such file or directory
Makefile:3496: recipe for target 'install-fixincludes' failed
make[1]: *** [install-fixincludes] Error 1
make[1]: Leaving directory '/home/oldboi/Downloads/gcc-4.9.4/gcc-build'
Makefile:2229: recipe for target 'install' failed
make: *** [install] Error 2
Last edited by AthlonXPUser on 2018-07-08, 08:49, edited 1 time in total.

Locked