You are not logged in.
Hi, everybody!
This is my first post here, didn't find anything appropriate via search, so excuse me in advance if the answer really is somewhere here in older posts deeply.
I use Arch and totally satisfied with it except one major issue.
By my work duties I need to build Android's old version (2.3 Gingerbread, to be precise).
This activity needs to use old gcc (now it is done fine with gcc 4.9.0) and all supporting libraries, make 3.81 and similar old-fashioned stuff.
But it becomes more complicated if we take into account rolling release philosophy -- for example, when I tried to make total system upgrade several days ago, my system totally crashed with kernel panic at boot (/sbin/init couldn't load some library and kernel has panicked).
As a train of consequences -- some application needs last versions of some libraries (libstdc++, for example), but I can't upgrade them without breaking my building environment.
So, with all these introductory words, my question is: is it possible to maintain particular build environment and at the same time be able to perform safe system update?
Thanks in advance for answers.
Last edited by Zzaponka (2016-01-24 20:02:32)
Offline
Please edit your post and use a title that actually reflects what you are asking, something about using an old GHC: https://wiki.archlinux.org/index.php/Fo … ow_to_post
Moving to NC...
Offline
So, with all these introductory words, my question is: is it possible to maintain particular build environment and at the same time be able to perform safe system update?
In a word, no. Partial upgrades are not supported.
A rolling release distro is not suitable for your needs. You should consider using something else for work. If you have a work computer then remove Arch and put whatever you actually need on it. If you don't have a work computer or need to keep Arch on the work computer, dual boot or use system virtualization. Keep a fully updated Arch host system and a nested build system.
My Arch Linux Stuff • Forum Etiquette • Community Ethos - Arch is not for everyone
Offline
Did you downgrade to get gcc? The more integrated a package is into the system the more likely downgrading will cause problems. The punishment for downgrading gcc and glib is likely to be swift and sure!
Use gcc 4.9 from the AUR and you can compile with the old version for a long time without any trouble. You can even have more than one version.
A rolling release distro is just fine when you learn how to roll with it.
Offline
Did you downgrade to get gcc? The more integrated a package is into the system the more likely downgrading will cause problems. The punishment for downgrading gcc and glib is likely to be swift and sure!
Use gcc 4.9 from the AUR and you can compile with the old version for a long time without any trouble. You can even have more than one version.
Yes, I have installed 4.9 version from AUR, but this wasn't enough (some strange errors during compilation). After that I have had to install gcc 4.4. All corresponding libraries was from 4.9.0 version, but everything works fine now.
When I was asking the question, I primarily wanted to know if there's any possibility to make something like a sandbox for all that stuff.
But anyway thanks for all replies.
Offline
When I was asking the question, I primarily wanted to know if there's any possibility to make something like a sandbox for all that stuff.
But anyway thanks for all replies.
There is a simple solution, just don't install this old GCC version globally. Download and build it to some working directory, and point your Android build tools to use that GCC, this is basic functionality of any development toolchain.
Offline
Partial upgrades are not what you need. However, installing different versions of GCC at the same time shouldn't be a problem.
- Just build it and install it to some working directory (solution yuvadm already proposed).
- You can also create a package for your "custom" GCC. Have a look at the mingw-w64 packages. These just put everything in dedicated directory trees (/usr/{i686,x86_64}-w64-mingw32) and additionally provide some useful links (eg. /usr/bin/i686-w64-mingw32-g++).
Because you asked for a sandbox: I would consider the mingw-w64 packages a "sandbox" for the Mingw-w64 tool chain. It should be possible to apply the same packaging scheme for other tool chains.
Keep in mind that you need to build all required libraries using your custom tool chain. (This might be some work.)
Offline