Wireshark mailing list archives

Re: Building OpenFlow 1.0 dissector for Wireshark 1.10.0 on Ubuntu 13.04


From: Guy Harris <guy () alum mit edu>
Date: Wed, 10 Jul 2013 14:52:05 -0700


On Jul 10, 2013, at 2:18 PM, Phiho Hoang <hohoangphi () gmail com> wrote:

Greetings,

Wireshark 1.10.0 was built from source on Ubuntu 13.04, (with gcc 4.7.3)

OpenFlow 1.0 dissector was also built from source using scons with this modification in 'Sconstruct' (copied from 
Sconstruct under Ubuntu 12.04):

# env = Environment(LINKFLAGS = '-flat_namespace')
env = Environment()

to work around this error:

$ scons install
...
scons: Building targets ...
gcc -o openflow.so -flat_namespace -shared packet-openflow.os plugin.os -L/usr/lib -L/usr/local/lib
gcc: error: unrecognized command line option '-flat_namespace'
scons: *** [openflow.so] Error 1
...

To quote the GCC man page on my machine:


           Darwin Options -all_load  -allowable_client  -arch
           -arch_errors_fatal -arch_only  -bind_at_load  -bundle
           -bundle_loader -client_name  -compatibility_version
           -current_version -dead_strip -dependency-file  -dylib_file
           -dylinker_install_name -dynamic  -dynamiclib
           -exported_symbols_list -filelist  -flat_namespace
        ...

   Options for Linking
       These options come into play when the compiler links object files into
       an executable output file.  They are meaningless if the compiler is not
       doing a link step.

       In addition to the options listed below, Apple's GCC also accepts and
       passes nearly all of the options defined by the linker ld and by the
       library tool libtool.  Common options include -framework, -dynamic,
       -bundle, -flat_namespace, and so forth.  See the ld and libtool man
       pages for further details.

                ...

       -allowable_client  client_name

                ...

       -flat_namespace
                ...

           These options are passed to the Darwin linker.  The Darwin linker
           man page describes them in detail.

The GCC man page on my Ubuntu 12.10 virtual machine does not say anything about -flat_namespace; unless it was a recent 
addition to GCC-for-Linux, the line

        env = Environment(LINKFLAGS = '-flat_namespace')

belongs in a configuration file *ONLY* when building on OS X for OS X (or maybe iOS), *NOT* when building on Linux for 
Linux, because -flat_namespace is an OS X-specific option.
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev () wireshark org>
Archives:    http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-request () wireshark org?subject=unsubscribe


Current thread: