Closed Bug 467453 Opened 16 years ago Closed 12 years ago

js/src/jscpucfg.cpp should be replaced with configure.in stuff

Categories

(Core :: JavaScript Engine, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 694499

People

(Reporter: jimb, Unassigned)

Details

There's no reason to have two distinct mechanisms for doing compile-time inspection of the target system.  configure.in can make the appropriate definitions in js-config.h.
bug 465640 provides most of the information jscpucfg is trying to determine, except for stack direction.
(In reply to comment #1)
> bug 465640 provides most of the information jscpucfg is trying to determine,
> except for stack direction.

Perhaps that can be replaced with a hard-coded list of conditions with a debug code to verify the stack direction on the start up?
/me likes the idea of a run-time test at start-up
Is it possible to use a static assertion to determine (or verify) stack direction?
No. I think we should just put this and endianness in per-arch headers as you guys were discussing on IRC the other day, and get rid of all the configure tests.
The problem with per-arch headers is that people add other stuff to them, requiring the process of choosing the right header to become more and more fine-grained over time.  Eventually it becomes difficult to add even simple information and be sure one has covered the relevant cases.  Thus autoconf.

If we had the discipline to write per-ABI headers --- by ABI, I mean the mapping from C language constructs to machine-level constructs, and not other compiler/library/OS characteristics --- and keep other stuff out, then it might work.  But it goes against the grain.  "Where else am I supposed to stick this #define about the type of the seventh argument to RANDOM_SYSTEM_CALL?  The conditions under which it applies are just like the ones you use to choose this header.  I've got other things to worry about, you know."
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.