Static link failures due to byteReverse() name clash

LC
Luca Ceresoli
Thu, Nov 9, 2017 10:18 PM

Dear pjsip developers,

the autobuilders for the Buildroot embedded Linux build system [0] have
recently reported some link failures ([1] [2] [3]) in building libpjsip.

The reason is that byteReverse() is an internal function in md5.c, but
it is not declared as static. This is a problem with the md5.c file
since it is copied more or less verbatim in other programs (fontconfig
and util-linux among others), causing a link error when statically
linking two of them together.

The fix is as trivial as making byteReverse() static, as was done for
util-linux [4]. Can the same fix be done on pjsip as well?

I would be glad to take the fix in Buildroot as soon as it's in the
pjsip repository.

Thanks!

[0] http://autobuild.buildroot.org/
[1]
http://autobuild.buildroot.org/results/5d7/5d72e0f8517a555399978d5a0e9f7efd0a278189/build-end.log
[2]
http://autobuild.buildroot.org/results/c47/c47ccbb9b40011cf0d79c7040bed061ddefd9629/build-end.log
[3]
http://autobuild.buildroot.org/results/419/419ab2c0e034cc68991281c51caa8271b0fadbab/build-end.log
[4]
https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/commit/?id=424cee0f06ece9473786c189ab4741e1dea7061d

--
Luca

Dear pjsip developers, the autobuilders for the Buildroot embedded Linux build system [0] have recently reported some link failures ([1] [2] [3]) in building libpjsip. The reason is that byteReverse() is an internal function in md5.c, but it is not declared as static. This is a problem with the md5.c file since it is copied more or less verbatim in other programs (fontconfig and util-linux among others), causing a link error when statically linking two of them together. The fix is as trivial as making byteReverse() static, as was done for util-linux [4]. Can the same fix be done on pjsip as well? I would be glad to take the fix in Buildroot as soon as it's in the pjsip repository. Thanks! [0] http://autobuild.buildroot.org/ [1] http://autobuild.buildroot.org/results/5d7/5d72e0f8517a555399978d5a0e9f7efd0a278189/build-end.log [2] http://autobuild.buildroot.org/results/c47/c47ccbb9b40011cf0d79c7040bed061ddefd9629/build-end.log [3] http://autobuild.buildroot.org/results/419/419ab2c0e034cc68991281c51caa8271b0fadbab/build-end.log [4] https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/commit/?id=424cee0f06ece9473786c189ab4741e1dea7061d -- Luca
M
Ming
Fri, Nov 10, 2017 3:18 AM

Hi Luca,

Thanks for reporting this. Fixed this in r5688 (
https://trac.pjsip.org/repos/changeset/5688).

Regards,
Ming

On Fri, Nov 10, 2017 at 6:18 AM, Luca Ceresoli luca@lucaceresoli.net
wrote:

Dear pjsip developers,

the autobuilders for the Buildroot embedded Linux build system [0] have
recently reported some link failures ([1] [2] [3]) in building libpjsip.

The reason is that byteReverse() is an internal function in md5.c, but
it is not declared as static. This is a problem with the md5.c file
since it is copied more or less verbatim in other programs (fontconfig
and util-linux among others), causing a link error when statically
linking two of them together.

The fix is as trivial as making byteReverse() static, as was done for
util-linux [4]. Can the same fix be done on pjsip as well?

I would be glad to take the fix in Buildroot as soon as it's in the
pjsip repository.

Thanks!

[0] http://autobuild.buildroot.org/
[1]
http://autobuild.buildroot.org/results/5d7/5d72e0f8517a555399978d5a0e9f7e
fd0a278189/build-end.log
[2]
http://autobuild.buildroot.org/results/c47/c47ccbb9b40011cf0d79c7040bed06
1ddefd9629/build-end.log
[3]
http://autobuild.buildroot.org/results/419/419ab2c0e034cc68991281c51caa82
71b0fadbab/build-end.log
[4]
https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/commit/?id=
424cee0f06ece9473786c189ab4741e1dea7061d

--
Luca


Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

Hi Luca, Thanks for reporting this. Fixed this in r5688 ( https://trac.pjsip.org/repos/changeset/5688). Regards, Ming On Fri, Nov 10, 2017 at 6:18 AM, Luca Ceresoli <luca@lucaceresoli.net> wrote: > Dear pjsip developers, > > the autobuilders for the Buildroot embedded Linux build system [0] have > recently reported some link failures ([1] [2] [3]) in building libpjsip. > > The reason is that byteReverse() is an internal function in md5.c, but > it is not declared as static. This is a problem with the md5.c file > since it is copied more or less verbatim in other programs (fontconfig > and util-linux among others), causing a link error when statically > linking two of them together. > > The fix is as trivial as making byteReverse() static, as was done for > util-linux [4]. Can the same fix be done on pjsip as well? > > I would be glad to take the fix in Buildroot as soon as it's in the > pjsip repository. > > Thanks! > > [0] http://autobuild.buildroot.org/ > [1] > http://autobuild.buildroot.org/results/5d7/5d72e0f8517a555399978d5a0e9f7e > fd0a278189/build-end.log > [2] > http://autobuild.buildroot.org/results/c47/c47ccbb9b40011cf0d79c7040bed06 > 1ddefd9629/build-end.log > [3] > http://autobuild.buildroot.org/results/419/419ab2c0e034cc68991281c51caa82 > 71b0fadbab/build-end.log > [4] > https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/commit/?id= > 424cee0f06ece9473786c189ab4741e1dea7061d > > -- > Luca > > _______________________________________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing list > pjsip@lists.pjsip.org > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org >