Closed Bug 644938 Opened 13 years ago Closed 13 years ago

TI: 32-bit compile errors on Linux JM changeset 7bfbc13e500a on Ubuntu 10.04

Categories

(Core :: JavaScript Engine, defect)

x86
Linux
defect
Not set
blocker

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: gkw, Unassigned)

Details

Attachments

(5 files)

Attached file log
See log
Attached patch possible patchSplinter Review
Hmm, that error doesn't make much sense.  Gary, can you see if the attached diff fixes the problem?
Attached file log
Nope, doesn't seem to.

Tested when compiling 32-bit opt shell in 64-bit Ubuntu Linux 10.04.
I think the problem is that the compiler doesn't like the assignment to a reference of a 'static const' variable.  Can you try this diff?  Failing that, can you check if putting UNASSIGNED_REGISTER in a uint32 local first fixes things?
(In reply to comment #3)
> Created attachment 522134 [details] [diff] [review]
> possible patch v2
> 
> I think the problem is that the compiler doesn't like the assignment to a
> reference of a 'static const' variable.  Can you try this diff?  Failing that,
> can you check if putting UNASSIGNED_REGISTER in a uint32 local first fixes
> things?

This didn't seem to work either, though there is now one less error on JM changeset 1cf3859b5f1e:

cc1plus: warnings being treated as errors
/home/fuzz1/Desktop/jsfunfuzz-dbg-32-jm-64219-1cf3859b5f1e/compilePath/methodjit/FrameState.h: In member function ‘void js::mjit::FrameState::popLoop(jsbytecode*, JSC::AbstractMacroAssembler<JSC::X86Assembler>::Jump*, jsbytecode**)’:
/home/fuzz1/Desktop/jsfunfuzz-dbg-32-jm-64219-1cf3859b5f1e/compilePath/methodjit/FrameState.h:1208: error: ‘<anonymous>’ is used uninitialized in this function
/home/fuzz1/Desktop/jsfunfuzz-dbg-32-jm-64219-1cf3859b5f1e/compilePath/methodjit/FrameState.h:1208: note: ‘<anonymous>’ was declared here

Still points to:

regstate(reg) = UNASSIGNED_REGISTER;
Attached patch silly patchSplinter Review
I can build jaegermonkey with this patch, but I don't like it one bit.
I can no longer even figure out an ugly hack to get around this problem, my previous patch has stopped working.
Actually, this now WFM since warnings-as-errors got disabled by default.
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → WORKSFORME
(In reply to comment #7)
> Actually, this now WFM since warnings-as-errors got disabled by default.

Am I doing something wrong then?

1. hg pull -u to make sure I am on latest JM
2. ./configure --enable-optimize --disable-debug
3. make

on 32-bit Ubuntu 10.04. I get

make[1]: Entering directory `/home/alon/Dev/jaegermonkey/js/src'
FrameState.cpp
c++ -o FrameState.o -c  -I./dist/system_wrappers_js -include ./config/gcc_hidden.h -DOSTYPE=\"Linux2.6\" -DOSARCH=Linux -DEXPORT_JS_API -D__STDC_LIMIT_MACROS  -I. -I. -I./dist/include -I./dist/include/nsprpub     -I. -I./assembler -I./yarr  -fPIC  -fno-rtti -fno-exceptions -Wall -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wcast-align -Wno-invalid-offsetof -Wno-variadic-macros -Werror=return-type -pedantic -Wno-long-long -fno-strict-aliasing -pthread -pipe  -DNDEBUG -DTRIMMED -g -O3 -fstrict-aliasing -fno-stack-protector -fomit-frame-pointer -Werror -DUSE_SYSTEM_MALLOC=1 -DENABLE_ASSEMBLER=1 -DENABLE_JIT=1   -DMOZILLA_CLIENT -include ./js-confdefs.h -MD -MF .deps/FrameState.pp ./methodjit/FrameState.cpp
cc1plus: warnings being treated as errors
./methodjit/FrameState.cpp: In member function ‘js::mjit::AnyRegisterID js::mjit::FrameState::bestEvictReg(uint32, bool) const’:
./methodjit/FrameState.cpp:509: error: ‘<anonymous>’ is used uninitialized in this function
./methodjit/FrameState.cpp:509: error: ‘<anonymous>’ is used uninitialized in this function
./methodjit/FrameState.h:1181: error: ‘<anonymous>’ is used uninitialized in this function
./methodjit/FrameState.h:1181: note: ‘<anonymous>’ was declared here
./methodjit/FrameState.h:1181: error: ‘<anonymous>’ is used uninitialized in this function
./methodjit/FrameState.h:1181: note: ‘<anonymous>’ was declared here
./methodjit/FrameState.h:1195: error: ‘<anonymous>’ is used uninitialized in this function
./methodjit/FrameState.h:1195: note: ‘<anonymous>’ was declared here
./methodjit/FrameState.cpp: In member function ‘js::mjit::AnyRegisterID js::mjit::FrameState::evictSomeReg(uint32)’:
./methodjit/FrameState.cpp:640: error: ‘<anonymous>’ may be used uninitialized in this function
./methodjit/FrameState.cpp:647: error: ‘<anonymous>’ may be used uninitialized in this function
./methodjit/FrameState.cpp:651: error: ‘<anonymous>’ may be used uninitialized in this function
make[1]: *** [FrameState.o] Error 1
make[1]: Leaving directory `/home/alon/Dev/jaegermonkey/js/src'
make: *** [default] Error 2
I'm really not sure. I've since upgraded to 10.10 (due to a variety of other reasons) and I don't think I see this issue.
The issue is still present on 10.04, then. Reopening.

Removing 64-bit from the title since it happens on 32-bit also.
Status: RESOLVED → REOPENED
Resolution: WORKSFORME → ---
Summary: TI: 32-bit compile errors on Linux JM changeset 7bfbc13e500a on Ubuntu 10.04 64-bit → TI: 32-bit compile errors on Linux JM changeset 7bfbc13e500a on Ubuntu 10.04
azakai: delete your build directory and retry?
(In reply to comment #11)
> azakai: delete your build directory and retry?

Thanks, that fixed it...
Status: REOPENED → RESOLVED
Closed: 13 years ago13 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: