wrong htons() used?
Mark Kettenis
kettenis@wins.uva.nl
Thu Oct 21 15:18:00 GMT 1999
Date: Thu, 21 Oct 1999 16:57:02 -0500
From: Grant.Edwards@comtrol.com
I'm confused. I ran the source file through gcc -E, and all
looked well. There was an extern decl for htons, and calls
to htons in the right places.
I built it with -Wl,-Map,gdb.map and htons shows up in the map
file, and everything works.
I don't know what I did to fix it, so I take out
-Wl,-Map,gdb.map and rebuild it without generating the map
file, and it doesn't work.
I put the -Wl,-Map,gdb.map back in, and this time htons
_doesn't_ show up in the map file and the binary doesn't work.
I can't figure out what I did to make it work that one time...
You probably disabled optimization, and renabled it later on. On my
system, which uses glibc-2.1, if you compile with optimization htons
is an optimizing macro that uses inline assembly to do the conversion (see
/usr/include/netinet/in.h and /usr/include/bits/byteswap.h). Somehow
you are using ARM headers to compile i386 code or the other way
around. As a workaround you could try to compile without
optimization, but that doesn't really solve your problem. If you're
using GCC you could use the `-v' compiler option to see what headers
are used.
Mark
More information about the Gdb
mailing list