After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 777904 - Compilation fails with gperf v3.1
Compilation fails with gperf v3.1
Status: RESOLVED FIXED
Product: vte
Classification: Core
Component: general
git master
Other Linux
: Normal minor
: ---
Assigned To: VTE Maintainers
VTE Maintainers
Depends on:
Blocks:
 
 
Reported: 2017-01-29 15:37 UTC by Marius Bergmann
Modified: 2017-01-29 18:47 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Marius Bergmann 2017-01-29 15:37:50 UTC
## Overview

When using gperf v3.1, the compilation of vte fails because the signature of the generated lookup function differs from the declared one.


## Steps to Reproduce

1) Compile vte with gperf v3.1 installed.


## Actual Results

Compilation fails with

```
vteseq.cc:3426:42: error: call of overloaded 'vteseq_n_lookup(const char*&, int&)' is ambiguous
   seqhandler = vteseq_n_lookup (name, len);
                                          ^
```


## Expected Results

Compilation should not fail.


## Additional Information

Info from gperf NEWS file:

```
* The 'len' parameter of the hash function and of the lookup function is now
  of type 'size_t' instead of 'unsigned int'. This makes it safe to call these
  functions with strings of length > 4 GB, on 64-bit machines.
```

systemd (https://github.com/systemd/systemd/issues/5039) and several other projects encountered the same issue.


## Proposed solution

I already created a patch implementing the solution from systemd: Check the result of gperf with autotools, define a preprocessor variable with the correct data type. If this is to be fixed, I will submit the patch.
Comment 1 Christian Persch′ 2017-01-29 16:21:37 UTC
Try now with vte from git master.
Comment 2 Marius Bergmann 2017-01-29 18:47:26 UTC
Works with gperf 3.0 as well as 3.1. Thank you for fixing!