Closed Bug 502078 Opened 15 years ago Closed 15 years ago

Allow ARM VFP to be enabled (or not) by configure.py

Categories

(Tamarin Graveyard :: Build Config, enhancement)

enhancement
Not set
normal

Tracking

(Not tracked)

VERIFIED FIXED
Future

People

(Reporter: stejohns, Assigned: rreitmai)

Details

Attachments

(1 file, 2 obsolete files)

add something like --enable-vfp to target VFP-enabled processors; currently we default to no VFP support without intrusive code hackery in avmshell
We'll need to enable both the compiler flags -mfloat-abi=softfp -mfpu=vfp and NJ_ARM_VFP in NativeARM.h
cool -- this still requires hacking NativeARM to define NJ_ARM_VFP ... couldn't we make that definition conditional on __VFP_FP__ being defined ? that would at least give us the correct default for common gcc arm compilers.
Yes this is only 1/2 the change (or less).  avmfeatures.as needs updating for the JIT component.   

And yes good suggestion regarding pulling the compiler flag, but I'm thinking we'll want to stay away from that for the longer term.  

I'm not sure how others feel, but I'm not keen on relying on compiler defines; 90% of the time the right thing happens, but then you spend hours on the 10% case when a build doesn't work out the way you expect because some *hidden* define was [un]set.
Outside of this patch, but do we want to clean up the 'memory-profiler' option.

It appears that there are a few cases (besides this one) where we need both a #define set and some additional compiler settings.  

Right now avmfeatures.featureSettings only allows the defines, but should we also put other compiler settings in there?
Attachment #386604 - Attachment is obsolete: true
Attachment #386659 - Flags: superreview?(lhansen)
Attachment #386659 - Flags: review?(stejohns)
Attachment #386659 - Attachment is patch: true
Attachment #386659 - Attachment mime type: application/octet-stream → text/plain
Attachment #386659 - Flags: superreview?(lhansen) → superreview+
Comment on attachment 386659 [details] [diff] [review]
ver 2 - contains all changes 

This is probably an AVMSYSTEM_ define and not an AVMFEATURE_ define.  Not to go all hair-splitting on you but AVMSYSTEM_ deals with environmental parameters (hw, os), and this appears to be one such.  Consider it approved with that change.

For now I would document the necessary compiler switches in the doc block in avmfeatures.as.  There's an ongoing discussion about using avmfeatures.as to hold default settings for configure.py to pick up (so that we can make --enable-X and --disable-X work properly), and I like the idea of having specific compiler settings recorded in that file as well.
(In reply to comment #6)
> (From update of attachment 386659 [details] [diff] [review])
> 
> There's an ongoing discussion about using avmfeatures.as to
> hold default settings for configure.py to pick up 

Oops.  There's an ongoing discussion about using avmshell-features.h to hold the default settings, avmfeatures.as should be default-free (as the whole point is that it documents available functionality but is unbiased about how to provide that).

Documenting compiler switches in the doc block is probably a good idea in the short term, and then we can see if it makes sense to record them structurally either in this file or in some other file later.
If we aren't going to use compiler-defined switches to enable/disable VFP support, and instead use our feature system, then at least we should have somthing in there which will #error out if the features dont agree with predefined compiler switches (on compilers where we know they're available).

possible errors:
 - enabling VFP in JIT when C++ doesn't use it
 - using soft float when C++ uses VFP
Attachment #386659 - Flags: review?(stejohns) → review+
pushed http://hg.mozilla.org/tamarin-redux/rev/18a04b86db8a 

have adjusted feature->system and will not cover cases outlined in comment #8 until we settle on above mentioned issues.
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
re-opening - since debug builds are not affected by --enable-arm-fpu.

OPT_CXXFLAGS is affected which only applied to release builds.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Flags: flashplayer-triage+
Target Milestone: --- → Future
Attached patch Add fpu support for winmo builds (obsolete) — Splinter Review
usage:
../configure.py --enable-shell --target=arm-windows --enable-arm-fpu
Attachment #410221 - Flags: review?(rreitmai)
Attachment #410221 - Flags: review?(rreitmai) → review+
Oh forgot to mention...does help show the --enable-arm-fpu option?
moving to resolved, can open a new bug if we need any further changes.
Status: REOPENED → RESOLVED
Closed: 15 years ago15 years ago
Resolution: --- → FIXED
yes --enable-arm-fpu does show up in the help.
Comment on attachment 410221 [details] [diff] [review]
Add fpu support for winmo builds

Pushed changeset:   3008:204bddb24cee
Attachment #410221 - Attachment is obsolete: true
Flags: in-testsuite?
Status: RESOLVED → VERIFIED
in-testsuite+, build system is building with --enable-arm-neon for arm-linux (VFP support) and without VFP support for windows mobile
Flags: in-testsuite? → in-testsuite+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: