Wireshark-dev: Re: [Wireshark-dev] Problems with epan\oids.c
From: Andrew Hood <ajhood@xxxxxxxxx>
Date: Wed, 19 Mar 2008 23:13:44 +1100
Peter Johansson wrote: > 2008/3/19, Bill Meier <wmeier@xxxxxxxxxxx <mailto:wmeier@xxxxxxxxxxx>>: > > Guy Harris wrote: > > > > If it's not already exported, perhaps the libsmi developers weren't > > aware of the wonderful "feature" of the Windows development > > environment wherein a library uses the version of the C runtime > > library with which it's built rather than the version with which the > > application using the library was built; that's a rather alien notion > > to most if not all UN*X developers, and I suspect the libsmi > > developers started on some UN*X. They don't really do Windows at all. The Windows version they provide is compiled with mingw32, and doesn't create a DLL. > nicely stated ! > > > > > If so, yes, we should probably mention that to them, e.g. on the > > libsmi list. > > > > (While we're at it, we should probably also mention to them that: > > > > 1) there's an smi_render man page: > > > > > http://www.ibr.cs.tu-bs.de/cgi-bin/dwww?type=man&location=/usr/local/man/man3/smi_render.3 > <http://www.ibr.cs.tu-bs.de/cgi-bin/dwww?type=man&location=/usr/local/man/man3/smi_render.3> > > > > but there's no link to it in the sidebar on the libsmi > home page: > > > > http://www.ibr.cs.tu-bs.de/projects/libsmi/ > > > > 2) that page doesn't indicate that the strings returned by those > > routines are mallocated.) > > > A quick look at the last several messages on the list indicates that > there's been recent changes related to compiling on Windows. > > I'll read thru the messages tomorrow and > provide some comments/suggestions as appropriate and as per the above. > > > Is it really a good idea to apply the patch where the free(...) calls > are disabled on Windows? > The official Wireshark releases for Windows are compiled and linked > using the same version of MS VC as libsmi was built with (VC6), right? > Hence this problem *only* affect developers such as myself that use a > compiler other than MS VC6 on Windows. > The official releases however will work fine without the proposed patch. > Since the current code base works and will continue to work even after > 1.0 for offical releases we have "all the time in the world" to apply a > long term solution instead. Even if it gets applied after 1.0 has been > released. > > I would like to see a long term solution where we are able to compile > every single library using any of the supported tool-chains that is at > every individual developer's hand. This means that makefiles are > required (unless anyone sees another solution). I do understand the > trouble of providing this though. I have tried to compile version 0.4.5, > 0.4.6 and 0.4.7 of libsmi. Neither compiles "out of the box". 0.4.5 is > the only candidate that has a chance of compiling on Windows without > changing the libsmi source code. There has been some recent discussion of MSVC compiling on the libsmi mailing list. libsmi SVN HEAD cross compiles with "LDFLAGS=-lrxspencer" but just about any other regex libs should work. A later version of mingw32 might not need this but mine does. It also compiles with MSVC8 with a small patch. I will send the attached patch for both of these to Frank and Juergen for inclusion. > 0.4.6 and 0.4.7 however contain > includes of Unix-specific header files. Are any of them in the lib/ directory or just in tools/ ? Wireshark doesn't use tools/. The makefile suggested the other day to create smi.dll does not work for me with MSVC8. > I thought I should address this > with the swedes that maintain libsmi but have not got around to it yet. Swedes? From the names I would guess Frank Strauss, Juergen Schoenwaelder and many of the other contributors are German or Austrian. I'm not Swedish either. -- There's no point in being grown up if you can't be childish sometimes. -- Dr. Who
Index: win/win.h =================================================================== --- win/win.h (revision 7931) +++ win/win.h (working copy) @@ -72,14 +72,4 @@ #define strtold strtod #endif -/* - * Some Windows compilers seem to lack strtof() so we fake it here. - */ - -#if defined(_MSC_VER) -#if _MSC_VER <= 1200 -#define strtof(f1,f2) ((float)strtod(f1,f2)) -#endif -#endif - #endif /* _WIN_H */ Index: win/makefile =================================================================== --- win/makefile (revision 7931) +++ win/makefile (working copy) @@ -51,7 +51,7 @@ cc32 = cl CP = copy RM = del -MKDIR = md +MKDIR = -mkdir ## ## Definitions: @@ -113,6 +113,7 @@ $(TMPDIR)\dump-sizes.obj \ $(TMPDIR)\dump-svg.obj \ $(TMPDIR)\dump-compliance.obj \ + $(TMPDIR)\dump-boilerplate.obj \ $(TMPDIR)\dump-yang.obj \ $(TMPDIR)\fprint.obj \ $(TMPDIR)\rea.obj \ @@ -138,10 +139,6 @@ $(cc32) $(cdebug) $(cflags) $(INCLUDES) \ $(DEFINES) -Fo$(TMPDIR)\ $< -{$(ROOT)\winmissing}.c.obj: - $(cc32) $(cdebug) $(cflags) $(INCLUDES) \ - $(DEFINES) -Fo$(TMPDIR)\ $< - ## ## Targets @@ -202,7 +199,7 @@ $(CP) README.win $(INSTROOT) $(MKDIR) $(INSTROOT)\doc $(CP) ..\doc\*.txt $(INSTROOT)\doc - $(CP) ..\doc\*.ps $(INSTROOT)\doc + -$(CP) ..\doc\*.ps $(INSTROOT)\doc install-bin: $(MKDIR) $(BINDIR) Index: tools/dstring.h =================================================================== --- tools/dstring.h (revision 7931) +++ tools/dstring.h (working copy) @@ -21,7 +21,7 @@ #include <stdarg.h> #ifdef __GNUC__ -# define inline extern inline +# define inline /* extern */ static inline #else #ifdef HAVE_WIN_H # define inline __inline Index: lib/parser-sming.y =================================================================== --- lib/parser-sming.y (revision 7931) +++ lib/parser-sming.y (working copy) @@ -29,6 +29,7 @@ #if defined(_MSC_VER) #include <malloc.h> +#define strtof(f1,f2) ((float)strtod(f1,f2)) #endif #ifdef HAVE_WIN_H Index: configure.in =================================================================== --- configure.in (revision 7931) +++ configure.in (working copy) @@ -62,6 +62,15 @@ AC_CHECK_HEADERS(pwd.h unistd.h regex.h stdint.h limits.h) +# In case regex is not in libc +AC_CHECK_LIB(c,regexec,LDFLAGS="$LDFLAGS", +[ + AC_CHECK_LIB(rxspencer,regexec,LDFLAGS="$LDFLAGS -lrxspencer", + [ + AC_CHECK_LIB(regex,regexec,LDFLAGS="$LDFLAGS -lregex") + ]) +]) + if test "x$prefix" = "xNONE" ; then prefix=/usr/local fi
- Follow-Ups:
- Re: [Wireshark-dev] Problems with epan\oids.c
- From: Peter Johansson
- Re: [Wireshark-dev] Problems with epan\oids.c
- References:
- [Wireshark-dev] Problems with epan\oids.c
- From: Peter Johansson
- Re: [Wireshark-dev] Problems with epan\oids.c
- From: Peter Johansson
- Re: [Wireshark-dev] Problems with epan\oids.c
- From: Stig Bjørlykke
- Re: [Wireshark-dev] Problems with epan\oids.c
- From: Luis EG Ontanon
- Re: [Wireshark-dev] Problems with epan\oids.c
- From: Peter Johansson
- Re: [Wireshark-dev] Problems with epan\oids.c
- From: Bill Meier
- Re: [Wireshark-dev] Problems with epan\oids.c
- From: Guy Harris
- Re: [Wireshark-dev] Problems with epan\oids.c
- From: Bill Meier
- Re: [Wireshark-dev] Problems with epan\oids.c
- From: Peter Johansson
- [Wireshark-dev] Problems with epan\oids.c
- Prev by Date: Re: [Wireshark-dev] Problems with epan\oids.c
- Next by Date: Re: [Wireshark-dev] Problems with epan\oids.c
- Previous by thread: Re: [Wireshark-dev] Problems with epan\oids.c
- Next by thread: Re: [Wireshark-dev] Problems with epan\oids.c
- Index(es):