[Gluster-devel] Build on FreeBSD and gcc version

Michael Scherer mscherer at redhat.com
Wed Sep 6 16:13:37 UTC 2017


Le mercredi 06 septembre 2017 à 12:39 +0200, Michael Scherer a écrit :
> Hi,
> 
> so I have been trying to make the internal freebsd builder usable,
> sinc
> eit was freshly installed and not building anything.
> 
> Over the course of the day, I found a few missing deps, found a ton
> of
> warnings (I started to fix the easy one, not sure what to do for the
> more complicated one around gf_log formating), but yesterday, I
> stumbled on a more puzzling issue:
> 
>  CCLD     glusterfsd
> ../../contrib/argp-standalone/libargp.a(argp-help.o): In function
> `_help':
> /tmp/glusterfs/contrib/argp-standalone/argp-help.c:1608: undefined
> reference to `argp_fmtstream_set_wmargin'
> /tmp/glusterfs/contrib/argp-standalone/argp-help.c:1622: undefined
> reference to `argp_fmtstream_set_lmargin'
> 
> 
> I also see message like this:
> libtool: warning: relinking 'libgfapi.la'
> *** Warning: Linking the shared library libgfapi.la against the
> *** static library ../../contrib/argp-standalone/libargp.a is not
> portable!
> 
> 
> After looking at the old builder, I found a few differences:
> - old one is FreeBSD 10.1, new one is 10.3
> - old one is using gcc 4.8, new one was on clang.
> 
> So I did install gcc, turn out that this was the version 5 by default
> on FreeBSD and it still do not work with it.
> 
> Then I forced gcc4.8 and now it build fine.
> Even better, once I forced the version, it also build (but I suspect
> that's just some bad cleanup on my side, more tests are needed)
> 
> Any reason on why this would fail on gcc 5, and not 4.8, and what we
> should do for that ?
> 
> I also found that what fail is to build only in Jenkins, most likely
> due to the setup where we build with a out of source tree directory
> for
> binary. It work fine if doing ./configure ; make ; make install  

So digging more, I suspect the problem is somewhere with our bundled
version of argp-standalone in contribs/, who do not include some symbol
when compiling with build.sh

$ objdump -t argp-fmtstream.o |grep .text 
0000000000000fb0 l     F .text	0000000000000076
__getCurrentRuneLocale
0000000000000b00 l     F .text	0000000000000035 __sbistype
0000000000000f40 l     F .text	000000000000006b __sbmaskrune
0000000000000a70 l     F .text	0000000000000090 __sputc
0000000000000000 l    d  .text	0000000000000000 .text
0000000000000b40 g     F .text	00000000000001d3
_argp_fmtstream_ensure
0000000000000190 g     F .text	00000000000008de
_argp_fmtstream_update
0000000000000100 g     F .text	0000000000000082
argp_fmtstream_free
0000000000000d20 g     F .text	0000000000000216
argp_fmtstream_printf
0000000000000000 g     F .text	00000000000000fa
argp_make_fmtstream

So I started to dig, and dig so deep that I am basically near New
Zealand.

And so far, I found that build.sh redefinition of CFLAGS is likely the
problem, as it likely erase something.

I am gonna dig in details tomorrow, posting my research so far if
someone is interested into fixing that in the night :)

-- 
Michael Scherer
Sysadmin, Community Infrastructure and Platform, OSAS

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part
URL: <http://lists.gluster.org/pipermail/gluster-devel/attachments/20170906/08e6dda7/attachment.sig>


More information about the Gluster-devel mailing list