-
Notifications
You must be signed in to change notification settings - Fork 294
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix gperf 3.1 linking errors #126
base: master
Are you sure you want to change the base?
Conversation
This fixes linking errors when gperf 3.1 is used, introduced by resiprocate#117. Hash function members use GPERF_SIZE_TYPE for size arguments, which is expanded to size_t and equivalent to unsigned long on x86-84. However, the old auto-generated sources committed in git use unsigned int, which causes linking errors when libresip.so is built. By removing the sources we force them to be re-generated by the actual gperf in the system, which resolves the mismatch.
This prevents auto-generated sources from being committed to git.
Is Windows generating these files as well or does it rely on the pre-generated ones? |
When we build an official tarball or ZIP file for the reSIProcate download page, we use When people take the code directly from Github, either by cloning the repository or downloading one of the tarballs on Github's release page, they get the versions of the files committed in the repository. You can find the logic related to this here: and You can also see when they have last been changed:
|
When getting the source code from GIT.... Windows users rely on the
pre-generated files, so that we don't require them to install the gperf
tool to build. They can generate new files from gperf (if they add new
headers or parameters), if they have it installed by using the
gperf_w32.bat batch file.
Scott
…On Tue, Apr 16, 2019 at 4:28 PM Gregor Jasny ***@***.***> wrote:
Is Windows generating these files as well or does it rely on the
pre-generated ones?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#126 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ACtNUaAxnBXSKS84aGXiPAXQCQKRJe1aks5vhjKHgaJpZM4cyJJY>
.
|
Configure scripts already check for gperf version to generate |
I've manually merged the first commit from this pull request, 30130a1, into master as it is essential for the build. The other commit, removing the contents of the resip/stack/gen/* directory from the repository is a separate issue that we need to agree on for future releases so I leave the pull request open to discuss that. |
This fixes linking errors with gperf 3.1. See #117 (comment).
The hand-made struct declarations used non-const pointers while gperf sources an the generated sources declare these pointers as const-qualified. This doesn't cause the linking errors, but worth fixing nonetheless.
This fixes linking errors when gperf 3.1 is used, introduced by #117. Hash function members use
GPERF_SIZE_TYPE
for size arguments, which is expanded tosize_t
and equivalent tounsigned long
on x86-84. However, the old auto-generated sources committed in git useunsigned int
, which causes linking errors when libresip.so is built.By removing the sources we force them to be re-generated by the actual gperf in the system, which resolves the mismatch.
This prevents auto-generated sources from being committed to git.