Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

It sounds simple enough but this has got me pulling my hair out.

I am running Arch Linux on an ARM chipset (Raspberry Pi specifically) that I used to be using as a print server. It was running CUPS with a universal Splix driver for my Samsung printer and worked well for a while until an unfortunate overclocking experiment completely trashed the filesystem.

So I am rebuilding the OS and the software for the print server but it seems that Splix 2.0.0 can no longer compile on gcc the way it used to. The Splix project hasn't been changed since 2009 so I can rule out a recent code change there. The error message I get trying to compile Splix seems more like a complaint about a prototype not matching exactly to an overloaded method in one specific file. I believe this is because the latest version of gcc (4.8.2-7) is not backwards compatible with this Splix driver anymore.

Beyond kicking myself over not backing up the compiled binaries when I had a chance, and coming to the sobering realization that pacman is purposely designed to make downgrading things a nightmare, I am trying to figure out a way I can find an ARM chipset package of gcc that is older, preferably 4.7.x, and do pacman -U xxxx.tar.gz and then instruct pacman not to upgrade this package. I will probably have to do the same for gcc-libs.

This should be relatively low risk as Splix is the only source I need to download and compile as there is no package site that has this software built for the ARM chipset.

If I have to download 4.7 source for gcc and compile that I would but I wouldn't know how or where to start? Is there another C++ compiler I can try other than gcc that might work?

UPDATE:

I accepted the answer pointing me to the Rollback Machine because this did have the exact version of GCC that I had asked for. I was able to download and install all of its dependencies manually and GCC appears to work fine, however I found that even this version was giving me the compiler error.

I want to kick myself in the face right now because I didn't even realize that Splix 2.0.0 was actually AVAILABLE in pacman under the community repo! I must have misspelled it when I did a query pacman -Q slpix because at first it told me it could not find the package. Then I thought that I must have downloaded the source and compiled it myself but apparently I didn't because I would have run into this same issue.

Needless to say I am quite embarrassed and I appreciate all of the help. I am curious though why I am unable to build Splix 2.0.0. I must be missing something simple but I am not the best C++ developer so I will leave that problem for the experts.

share|improve this question
1  
Have you tried this: wiki.archlinux.org/index.php/Downgrading_Packages ? If there was a gcc 4.7 in arch for the pi at one time, there should still be one, I think. –  goldilocks Apr 13 at 13:51
    
@TAFKA'goldilocks' That should work, but remember to upgrade it again before updating any AUR packages: Partial upgrades are unsupported. –  PlasmaPower Apr 13 at 14:21
    
Also, I'm not sure there is a gcc 4.7.x on the web for arch. Even the arch rollback machine for i686 only goes back to 2013-08-31, the version then is gcc 4.8.1-3 –  PlasmaPower Apr 13 at 14:27
    
@PlasmaPower If I were to download that package manually then do you think it would install correctly with pacman? –  maple_shaft Apr 13 at 14:43
2  
You could either cross compile it (Splix), or install raspbian on another card and compile it there (gcc 4.6.3), both of which will be easier than trying to build gcc on the pi, I think. –  goldilocks Apr 13 at 15:22

1 Answer 1

up vote 1 down vote accepted

You should check out the Arch Linux ARM Rollback Machine. There's the gcc 4.7.2 packages there.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.