Mailinglist Archive: opensuse-packaging (192 mails)

< Previous Next >
[opensuse-packaging] What is an "undefined-non-weak-symbol" and how is it fixed?
A Fedora packager is basing his openCOLLADA on mine and during his review rpmlint picked up "undefined-non-weak-symbol"s in one of the libraries. This seems like something that I should fix and possibly something that our rpmlint needs to check for.
This is what shows it up, rpmlint doesn't :
ldd -r /usr/lib64/libbuffer.so
undefined symbol: _ZN6Common4ftoaEfPc (/usr/lib64/libbuffer.so)
undefined symbol: _ZN6Common4dtoaEdPcb (/usr/lib64/libbuffer.so)
linux-vdso.so.1 => (0x00007fffe5d37000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f7017757000)
libm.so.6 => /lib64/libm.so.6 (0x00007f7017500000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f70172e9000)
libc.so.6 => /lib64/libc.so.6 (0x00007f7016f7c000)
/lib64/ld-linux-x86-64.so.2 (0x00007f7017ca3000)

I assume this has to do with the two undefined symbols in libbuffer.so :
# c++filt _ZN6Common4ftoaEfPc _ZN6Common4dtoaEdPcb
Common::ftoa(float, char*)
Common::dtoa(double, char*, bool)

The closest match I can find in the sources are from libftoa's (also part of
openCOLLADA) Commondtoa.h and Commonftoa.h :
/*
Copyright (c) 2009 NetAllied Systems GmbH

This file is part of Common libftoa.

Licensed under the MIT Open Source License,
for details please see LICENSE file or the website
http://www.opensource.org/licenses/mit-license.php
*/

#ifndef __COMMON_DTOA_H__
#define __COMMON_DTOA_H__

#include <stdlib.h>

namespace Common
{

/** The minimum size of the buffer, passed to dtoa.*/
static const size_t DTOA_BUFFERSIZE = 30;


/** Returns the number of bytes written in to the buffer.
@param buffer The buffer the string representation of the number will
be written to. Its size must be at
least DTOA_BUFFERSIZE.
@param doublePrecision If set to true, up to 16 significant digits are
written, otherwise 6*/
int dtoa(double f, char* buffer, bool doublePrecision = false);

}

#endif // __COMMON_DTOA_H__

I won't paste it's brother Commonftoa.h but the package is at :
https://build.opensuse.org/package/show?package=openCOLLADA&project=home%3Aplater%3Ablender
If you want to see the Fedora review :
https://bugzilla.redhat.com/show_bug.cgi?id=694287

Thanks
Dave P
--
To unsubscribe, e-mail: opensuse-packaging+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-packaging+help@xxxxxxxxxxxx

< Previous Next >