Wireshark mailing list archives

Re: Pointers needed for building Wireshark 2.6.3 on a Raspberry Pi model 3B (armv7 processor?)


From: Guy Harris <guy () alum mit edu>
Date: Wed, 12 Sep 2018 17:48:22 -0700

On Sep 12, 2018, at 5:07 PM, Geoff Lee <geoff.lee99 () gmail com> wrote:

As explained in Guy Harris's most recent and very illuminating post,
(almost) all of the "error" messages were in fact part of the CMake process,
for probing my gcc compiler to see what features and options it supports.

Probing the compiler *and* the libraries/developer header files.

I have now managed to track down the cause of my (CMake) problem. The final
on screen error message was

fatal: Not a git repository (or any of the parent directories): .git
CMake Error at CMakeLists.txt:3082 (string):
 string begin index: 1 is out of range 0 - 0

Looking at the CMakelists.txt file around line 3082, I found a comment in
line 3042 which said

# This will fail if we're not building from a git checkout.

Since I had downloaded and unzipped / untarred the wireshark code (ie I
wasn't using a git checkout!), I suspected this might be the cause of my
problem, so I created a new directory and cloned a copy of the code directly
from the Github repository, via :

`git clone -b master-2.6 --single-branch
https://github.com/wireshark/wireshark.git`

Executing (from a build directory parallel to the cloned git directory)
`cmake -G Ninja ../wireshark` ran successfully, first time :-) , and
produced a build.ninja file.  So now I am able to run `ninja` and see many
compilations happening on my Raspberry Pi.  

I'm not really sure why the downloaded untarred unzipped version wouldn't
pass cmake safely,

Because the CMakeLists.txt file is buggy; it's making an inappropriate assumption.

The 2.6 version of the top-level CMakeLists.txt appears to (implicitly) assume that, on a system with rpmbuild and git, 
you're doing a build from a cloned git directory, as per the comment.

The master branch version doesn't; perhaps we should backport the changes involved to 2.6, or otherwise not assume "git 
describe" will work unless there's a .git subdirectory of the current directory.

but since the cloned git version does

...because you *are* doing it from a git checkout.

Unfortunately I haven't succeeded yet to get to the end of the complete
wireshark compilation process.  `ninja` runs for quite a while (several
hours) than fails with a message about a gcc or c++ internal compiler bug.
Restarting ninja picks up from where it fell over, and gets a bit further
down the track before failing again. If I am interpreting the ninja messages
correctly, I began with around 3000 compilation steps required; my first
attempt managed about 1500 of these before failing; my second completed
another 300 or so;  I'm currently down to only 262 left - but am only
managing about 10 to 20 steps per ninja attempt before the compiler
collapses.

If you restart it after it fails, it might not start out trying to compile the file on which it failed, especially if 
you're using the -j flag to do parallel builds, so it may make *some* progress.

However, I suspect you're eventually going to get to a point where the only files left to compile are the ones where 
the compiler crashes, and repeating the build will not make any further progress.

In that case, you'll need to file a bug against the compiler.

I rather fear this is a limitation of my Raspberry Pi hardware
(memory limit maybe, causing the compiler to choke on larger and more
complex parts of the wireshark project??),

Possibly, but one would hope that a memory allocation failure in the compiler would be reported as a memory allocation 
failure, not an internal compiler bug. (I would argue that if it's *not* reported as a memory allocation failure, that, 
in and of itself, is an internal compiler bug - it should be catching memory allocation failures and reporting them as 
such.)
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev () wireshark org>
Archives:    https://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-request () wireshark org?subject=unsubscribe

Current thread: