Opened 8 years ago

Closed 8 years ago

#151 closed task (fixed)

Drop i386 support

Reported by: dmik Owned by:
Priority: major Milestone:
Component: rpm Version:
Severity: medium Keywords:
Cc: Dave Yeo, Yuri Dario

Description

Currently, our RPM repos provide three architectures: i386, i686 and pentium4. This is obviously too much for our small community (in terms of the repo size and time to build packages). i386 is a very old architecture, I doubt there are too many i386 PCs out there and those that still run won't be able to run eCS 2.2bII (our base target platform) at any comfortable level.

We should investigate if a i686 package will run on a i586 and lower CPUs before making this decision (to clearly understand consequences).

Change History (9)

comment:1 Changed 8 years ago by dmik

BTW, another argument to drop i386 support is that there are some features that we need that are simply not supported by i386, e.g.built-in functions for atomic memory access in GCC 4, see https://github.com/psmedley/gcc/issues/19. They are used in recent Mozilla and Fontconfig ports (and I suppose in many other places as well). For these applications, we will not be able to deliver i386 RPM binaries at all because of this switch.

So we must surely drop i386, I have no doubt in that. The only question is if we should use i686 or change it to i486 or i586.

comment:2 Changed 8 years ago by Dave Yeo

I started building Firefox etc targeting i686 about 10.10ESR and have yet to have had any complaints. Same with a few other programs such as FFmpeg which needs atomics. There are users with PII or PIII setups who have complained about SSE2.
I believe a program targeting i686 will not run on an original Pentium but will run on a K6.
I686 will also benefit all architectures excepting P4 due to instruction order and even P4 would benefit from the alignment.

comment:3 Changed 8 years ago by Silvan Scherrer

What happens to customers which have arch i386 rpm support as default. Do they need to change the arch in the config file? If such a change would mean a manual config change by the customer, I guess we get into trouble. As how to reach all of them.
If we drop an arch, we need a way to change the config file by an update.

Or is yum/rpm clever enough to just download another fitting arch?

comment:4 Changed 8 years ago by Yuri Dario

yum will not select i686 if i386 is missing since it has higher requirements. The only solution is to place a platform file.

We can include a platform file into one of the core packages, like os2-base. This will move downloads to i686 for future releases. But people with a i386 platform file will be not affected by this change since yum/rpm will not overwrite the file (it could also point to pentium4 arch); I doubt users have a i386 platform file since it does not make sense, but who knows...

Another solution is to move release from 00 to 01, but this requires a full rebuild of everything.

Probably platform file is best, if someone uses it for i386 he will never be able to install newer files, we can update wiki regarding this.

comment:5 Changed 8 years ago by Silvan Scherrer

Ok this makes sense. I also doubt customers have a i386 file. And w/o a file yum/rpm uses i386 iirc. So when we decide to drop i386, we have to install a arch file first by a base package.

And as you said document it on the wiki.

comment:6 Changed 8 years ago by Dave Yeo

Cc: Dave Yeo added

According to https://en.wikipedia.org/wiki/X86_instruction_listings cmov was first added to the Pentium Pro and missing on the K6 and such.
Most Linux distributions dropped support for processors without cmov a few years back.

comment:7 Changed 8 years ago by Silvan Scherrer

as we have to do a rpm update anyway (see #149) it could be a good idea to set i686 as the default.

comment:8 Changed 8 years ago by Silvan Scherrer

Cc: Yuri Dario added

as we decided to drop i386, we should release a new os2-base with the platform file.

@Yuri could you do that soon?

comment:9 Changed 8 years ago by Silvan Scherrer

Resolution: fixed
Status: newclosed

r620 fixed this

Note: See TracTickets for help on using tickets.