Closed Bug 45657 Opened 24 years ago Closed 23 years ago

Incorrect platform designation in file name of Linux archive

Categories

(SeaMonkey :: Build Config, defect, P3)

x86
Linux
defect

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: JRobertson, Assigned: granrosebugs)

References

()

Details

The file name of the Linux mozilla archive is named incorrectly.

When downloading packages and other archives for Linux, the ix86 designation 
represents which processor the program will run on.  For example, when you 
download a RedHat kernel, you can download either the i386 version or the i686 
version.

The difference being which processor is *required* to use the program or 
package.  i686 packages *require* a Pentium II or higher because they use 
special instructions that the lower processors don't have.  Just like the i386 
packages *require* a 386 or higher and won't run on a 286 or lower.  I've had 
this argument on irc.mozilla.org/#mozzilazine several times.

I've been told that the i686 designates what class of machine built the 
program.  Well that is just plain silly (to be polite).

I've also been told that the i686 designates which processor the code is 
optimized for.  This doesn't make any sense.  How would you optimize the code 
for a higher processor without keeping it from running on the lower 
processors?  The higher processors have optimal instructions that aren't 
available on the lower processor machines.

By naming the Linux archive with the i686 designation, you imply that the 
archive will only run on an i686 or higher.  This is wrong.  It sent me on a 
search for 20 minutes all over the mozilla site and ftp archive trying to find 
an i386 version.  I finally tried the one labeled i686 and found out it worked 
on my Pentium 120 (you know, the first Pentium, aka i586).

I've also talked with several users who have been confused by the same 
problem.  The folks on #mozillazine and #mozilla seem set against changing it.  
But the current name just confuses the users, whether mozilla.org considers it 
to be valid or not.

As an example of your own confusion, take a look at the "Nightly Builds" 
paragraph in the lower right corner of http://www.mozilla.org.  See where it 
says "i386 Linux"?  Now look at the file name that links to.  Do you see i386 
in that file name?  I sure don't...
I'll take this since this involves hacking the unix build automation.

I don't know when/if we'll change this as the directories and filenames are
created automatically and the structure is based on the build system
architecture as reported by the system.  Changing it to reflect lowest common
denominator is not going to be a high priority and could be more confusing for
the people creating the builds.  This may be easier to fix by adding additional
clarification on the web site.
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
QA Contact: granrose → leaf
actually taking bug this time...
Assignee: cls → granrose
Status: ASSIGNED → NEW
Status: NEW → ASSIGNED
*** Bug 61555 has been marked as a duplicate of this bug. ***
The bug marked duplicate (bug 61555) is not a duplicate-- rather it argues the
opposite viewpoint. I reported in 61555 that the binaries run slowly or not at
all on Pentium and lower machines, therefore the link to them should be changed
to "i686 linux."

See my comments in that bug. Jon Robertson, how successful were you in running
the mozilla binaries marked "i686"? Browsing was exceptionally slow in my
experience, and I decided to compile from source, which made it run much more
speedily.
Actually, rereading this, there is a wrong assumption in the original post.

Binaries that are optimized for higher platforms will still run on the lower
platform.  In this case, the optimization only refers to scheduling of
instructions.  That's why i686 scheduled builds will run on a i486 class
machine.  But builds optimized for i686 scheduling will run slower on lower
class machines than builds optimized for i386 (the default, I think).

I do not think there are any plans to do pure arch specific builds (using -march
build option).  Those builds would use instructions only found on a certain
class of machine and would not be usable on a lower class machine.

Wrt to the nightly automation, the build name is set by config.guess which gets
it from uname.  The only way to change the name to something other than what it
is now would be to specify it to the automation.  Now which cpu we are
optimizing generating instructions or scheduling instructions for depends upon
the compiler since we are not passing any flags to it.  Luckily, RedHat's
compiler appears to default to something reasonable like -march=i386
-mcpu=pentium .  (-fverbose-asm is your friend.)

So given that combination of events, I think the defaults are reasonable.  What
does config.guess & uname know about the options passed to the compiler?  Some
projects could change their default cpu optimizations based upon the cpu class
of the machine. We do not.  If the nightly automation does change, it should
specifically pass i386-linux to configure *and* adds -march=i386 to
CFLAGS/CXXFLAGS just in case the compiler defaults change as well.
resolving wontfix.

if you feel strongly about it, you can file a bug against mozilla.org to change
the wording to x86 Linux.
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Resolution: --- → WONTFIX
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.