NASM - The Netwide Assembler
NASM Forum => Other Discussion => Topic started by: walker on November 07, 2011, 01:21:35 PM
-
Hello,
I am trying to build nasm (I'm following a tutorial) and am having problems. Is this the proper forum to ask about this?
walker
-
Sure. Although... if it turns out to be a real "bug" in the build process, we may want to discuss it with the "nasm-devel" list at SourceForge, as well...
What's the tutorial? What platform? What compiler? What do you do? What happens?
On Linux, I just "./configure" and then, as root, "make install_everything". Actually, I usually do "make everything" as user, and then "make install_everything" as root, but that shouldn't be neccessary. I guess the "everything" and "install_everything" targets aren't too obvious. Other approaches "should" work, too. If you haven't got the "./configure" system, you'll have to pick a Makefile from the Mkfiles directory, I guess...
What are you having trouble with?
Best,
Frank
-
Thanks.
I do not think this is a nasm problem, I think it is an environment problem; but I do not have enough experience to diagnose it.
I am using gcc in every case.
I am familiar with the usual routine of .configure, make, make install; and that generally works as advertised.
In this case I get more warnings than I am accustomed to.
Here are a few lines of the warnings I get:
assemble.c:514:21: warning: case value ‘27’ not in enumerated type ‘enum prefixes’
assemble.c:521:21: warning: case value ‘49’ not in enumerated type ‘enum prefixes’
assemble.c:528:21: warning: case value ‘57’ not in enumerated type ‘enum prefixes’
assemble.c:535:21: warning: case value ‘60’ not in enumerated type ‘enum prefixes’
assemble.c:538:21: warning: case value ‘61’ not in enumerated type ‘enum prefixes’
If one googles:
"warning: case value ‘27’ not in enumerated type"
one gets about 14 hits. So this does not seem to be a common warning.
I am following the tutorial located at the url:
http://ingar.satgnu.net/devenv/mingw32/index.html
I am running a freshly installed mingw environment on
windows 7 starter 32 OS
Intel Atom N450
2GB Ram
==================================
Environments giving similar results:
---------------------------------
nasm versions 2-09.10, 2.08, 2.07, 2.06, 2.00, 0.99.06 on linux machine:
Opensuse 11.3 64 bit 2.6.34.10-0.2-desktop
Intel i7 950 @ 3.07GHz
12GB Ram
nasm 2-09.10 on linux machine
Opensuse 11.4 32 bit 2.6.37.6-0.7-default
Intel Pentium 4 @ 3.0Ghz
2GB Ram
Environments giving better results:
---------------------------------
nasm-2.09.10 on windows machine
XP 32 bit
cygwin
gave about 6 lines of warnings, none of which looked too serious
nasm-2.09.10 on linux machine
Redhat 7.3
gave just a few warnings, but the machine is at another location right now.
=======================
I have been digging into the various files and found this in the config.log:
==================
configure:2575: $? = 0
configure:2564: gcc -V >&5
gcc: '-V' option must have argument
configure:2575: $? = 1
configure:2564: gcc -qversion >&5
gcc: unrecognized option '-qversion'
gcc: no input files
==================
This is in the config.log on the Atom machine as well
I don't know what significance this is, but searching on some of these key phrases, I found my Atom environment some what peculiar, for instance I get the following responses from these commands:
which gcc
/mingw/bin/gcc.exe
which ld
/mingw/bin/ld.exe
gcc -print-prog-name=ld
C:/mingw/bin/../lib/gcc/mingw32/4.6.1/../../../../mingw32/bin/ld.exe
The above looks strange to me but the mounted partitions looked strange to me as well so I don't know.
I am stumped at the moment.
Thanks in advance for any insight and help.
walker
-
Try the following sequence:
make spotless
./autogen.sh
./configure
make
-
On the Intel 950 linux machine after applying the above commands,
make produces the following errors/warnings:
defined(@array) is deprecated at perllib/phash.ph line 164.
(Maybe you should just omit the defined()?)
Reading insns.dat...
Writing insnsi.h...
Done: 3729 instructions
defined(@array) is deprecated at ./pptok.pl line 167.
(Maybe you should just omit the defined()?)
defined(@array) is deprecated at perllib/phash.ph line 164.
(Maybe you should just omit the defined()?)
defined(@array) is deprecated at perllib/phash.ph line 164.
(Maybe you should just omit the defined()?)
Reading insns.dat...
Writing insnsa.c...
Done: 3729 instructions
Reading insns.dat...
Writing insnsb.c...
Done: 3729 instructions
defined(@array) is deprecated at perllib/phash.ph line 164.
(Maybe you should just omit the defined()?)
24 vectors, trying n = 32...
1: Done: n = 32, sv = [0x076259c3, 0xe291c26c]
assemble.c: In function ‘assemble’:
assemble.c:514:21: warning: case value ‘27’ not in enumerated type ‘enum prefixes’
assemble.c:521:21: warning: case value ‘49’ not in enumerated type ‘enum prefixes’
assemble.c:528:21: warning: case value ‘57’ not in enumerated type ‘enum prefixes’
assemble.c:535:21: warning: case value ‘60’ not in enumerated type ‘enum prefixes’
assemble.c:538:21: warning: case value ‘61’ not in enumerated type ‘enum prefixes’
assemble.c:548:21: warning: case value ‘110’ not in enumerated type ‘enum prefixes’
assemble.c:549:21: warning: case value ‘111’ not in enumerated type ‘enum prefixes’
assemble.c:541:21: warning: case value ‘116’ not in enumerated type ‘enum prefixes’
parser.c: In function ‘prefix_slot’:
parser.c:76:5: warning: case value ‘27’ not in enumerated type ‘enum prefixes’
parser.c:77:5: warning: case value ‘49’ not in enumerated type ‘enum prefixes’
parser.c:79:5: warning: case value ‘57’ not in enumerated type ‘enum prefixes’
parser.c:80:5: warning: case value ‘60’ not in enumerated type ‘enum prefixes’
parser.c:81:5: warning: case value ‘61’ not in enumerated type ‘enum prefixes’
parser.c:78:5: warning: case value ‘116’ not in enumerated type ‘enum prefixes’
defined(@array) is deprecated at ./pptok.pl line 167.
(Maybe you should just omit the defined()?)
defined(@array) is deprecated at perllib/phash.ph line 164.
(Maybe you should just omit the defined()?)
92 vectors, trying n = 128...
1: Graph is cyclic
2: Done: n = 128, sv = [0xaee7ac5c, 0xcabdec91]
defined(@array) is deprecated at ./pptok.pl line 167.
(Maybe you should just omit the defined()?)
defined(@array) is deprecated at perllib/phash.ph line 164.
(Maybe you should just omit the defined()?)
defined(@array) is deprecated at perllib/phash.ph line 164.
(Maybe you should just omit the defined()?)
3 vectors, trying n = 4...
1: Done: n = 4, sv = [0x076259c3, 0xe291c26c]
defined(@array) is deprecated at perllib/phash.ph line 164.
(Maybe you should just omit the defined()?)
1732 vectors, trying n = 2048...
1: Collision: 239,1648: cmpunordps with vpsubusb
2: Graph is cyclic
3: Collision: 565,2334: fucomp with vfmsub123ss
4: Graph is cyclic
5: Done: n = 2048, sv = [0x13f0eafb, 0x407e486a]
Reading insns.dat...
Writing insnsd.c...
Done: 3729 instructions
Reading insns.dat...
Writing insnsn.c...
Done: 3729 instructions
-
Well... a lot of what you've got there is "informational" output from Perl. I suppose the "deprecated" warning is from different versions of Perl(?). I wouldn't worry much about that - shouldn't happen after after the first build after "make spotless".
I can't imagine why gcc is complaining about those enumerations. They're in "regs.h", included in a "chain" from "nasm.h"(?).... one of those "autogenerated" files... I don't think I've ever seen that warning before.
As a general rule, it isn't wise to simply ignore warnings - they're there for a reason. But I think that's what I'd do, in this case. :)
Thanks for the great feedback!
Best,
Frank
-
Thanks for the help.
I know some warnings are important and some aren't, and in this case I didn't want to make an assumption that these aren't since nasm is a dependency for other steps to come.
It is also nice to know that there is not something obvious that I had missing from my environment. I didn't want to waste a lot of time if there was a flaw in my setup.
I will see if I can discover the cause of the complaints and if I figure it out, will report back.
Thanks again.
-
I sent to the nasm-devel (http://sourceforge.net/mailarchive/forum.php?forum_name=nasm-devel&max_rows=25&style=ultimate&viewmonth=201102) list back in Feb 2011 regarding the same warnings for 2.10RC3.
-
Guys, this warning: case value ‘27’ not in enumerated type ‘enum prefixes’ is pretty known. I even have a patch for this, but didn't merge it since the final result in code is not that good. So I defer it. You might ignore this warnings for a while. I'll try to find some spare time for this nit. Thanks!
-
Thanks, Cyrill! 8)
-
Fix pushed upstream as 18914e63305314b36e550439b41e0bf157cf338d
(I've filed a bug for this as well http://bugzilla.nasm.us/show_bug.cgi?id=3392198)