On Wed, 2018-10-17 at 18:36 -0400, Brian Matheson wrote:
It did indeed (tested by simply pulling in relevant definitions from
centos) but fails to link. I don't currently have the build in front
of me, so cannot report details right now.
I've started down the path of building glibc in alpine but don't know
off hand how long the dependency chain will be.
If there's interest on the list, I'll keep you posted.
We define the MALLOPT and MX_FAST as a work around to a glibc issue
though. Could we actually just #ifdef check what libc we have to
prevent this leaking into other platforms/libc types?
>
> Thanks again for the help,
> Brian
>
> On Wed, Oct 17, 2018, 5:27 PM Mark Reynolds <mreynolds(a)redhat.com>
> wrote:
> > On 10/17/18 12:07 PM, Mark Reynolds wrote:
> > > On 10/17/18 12:01 PM, Mark Reynolds wrote:
> > > > On 10/17/18 11:27 AM, Brian Matheson wrote:
> > > > > Hi list,
> > > > >
> > > > > I'm attempting th build 389ds with gperftools under alpine
> > > > > linux, but
> > > > > have run into the following snag:
> > > > >
> > > > > /BUILD # make
> > > > > make all-am
> > > > > make[1]: Entering directory '/BUILD'
> > > > > /bin/bash ./libtool --tag=CC --mode=compile gcc
> > > > > -DHAVE_CONFIG_H -I.
> > > > > -I../389-ds-base
-DBUILD_NUM=\"2018.290.1518\"
> > > > > -DVENDOR="\"389 Project\""
-DBRAND="\"389\""
> > > > > -DCAPBRAND="\"389\""
> > > > > -UPACKAGE_VERSION -UPACKAGE_TARNAME -UPACKAGE_STRING
> > > > > -UPACKAGE_BUGREPORT -I../389-ds-base/ldap/include
> > > > > -I../389-ds-base/ldap/servers/slapd -I../389-ds-base/include
> > > > > -I.
> > > > > -I../389-ds-base/src/nunc-stans/include/
> > > > > -DLOCALSTATEDIR="\"/var\""
> > > > > -DSYSCONFDIR="\"/etc\""
-DLIBDIR="\"/usr/lib64\""
> > > > > -DBINDIR="\"/usr/bin\""
-DDATADIR="\"/usr/share\""
> > > > > -DDOCDIR="\"/usr/share/doc/389-ds-base\""
> > > > > -DSBINDIR="\"/usr/sbin\""
> > > > > -DPLUGINDIR="\"/usr/lib64/dirsrv/plugins\""
> > > > > -DTEMPLATEDIR="\"/usr/share/dirsrv/data\""
> > > > >
-DSYSTEMSCHEMADIR="\"/usr/share/dirsrv/schema\""
> > > > > -I../389-ds-base/src/nunc-stans/include/ -I/usr/include
> > > > > -I/usr/include/nss -I/usr/include/nspr -I/usr/include/nspr
> > > > > -I/usr/include/sasl -I/usr/include -I/usr/include
> > > > > -I../389-ds-base/src/libsds/include/
> > > > > -I../389-ds-base/src/libsds/external/ -I/usr/include/nspr
> > > > > -I../389-ds-base/src/svrcore/src/ -g -pipe -Wall -
> > > > > fexceptions
> > > > > -fstack-protector --param=ssp-buffer-size=4 -m64
> > > > > -mtune=generic -MT
> > > > > ldap/servers/slapd/libslapd_la-libglobs.lo -MD -MP -MF
> > > > > ldap/servers/slapd/.deps/libslapd_la-libglobs.Tpo -c -o
> > > > > ldap/servers/slapd/libslapd_la-libglobs.lo `test -f
> > > > > 'ldap/servers/slapd/libglobs.c' || echo
> > > > > '../389-ds-base/'`ldap/servers/slapd/libglobs.c
> > > > > libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../389-ds-base
> > > > > -DBUILD_NUM=\"2018.290.1518\" "-DVENDOR=\"389
Project\""
> > > > > -DBRAND=\"389\" -DCAPBRAND=\"389\"
-UPACKAGE_VERSION
> > > > > -UPACKAGE_TARNAME
> > > > > -UPACKAGE_STRING -UPACKAGE_BUGREPORT -I../389-ds-
> > > > > base/ldap/include
> > > > > -I../389-ds-base/ldap/servers/slapd -I../389-ds-base/include
> > > > > -I.
> > > > > -I../389-ds-base/src/nunc-stans/include/
> > > > > -DLOCALSTATEDIR=\"/var\"
> > > > > -DSYSCONFDIR=\"/etc\"
-DLIBDIR=\"/usr/lib64\"
> > > > > -DBINDIR=\"/usr/bin\"
> > > > > -DDATADIR=\"/usr/share\"
-DDOCDIR=\"/usr/share/doc/389-ds-
> > > > > base\"
> > > > > -DSBINDIR=\"/usr/sbin\"
> > > > > -DPLUGINDIR=\"/usr/lib64/dirsrv/plugins\"
> > > > > -DTEMPLATEDIR=\"/usr/share/dirsrv/data\"
> > > > > -DSYSTEMSCHEMADIR=\"/usr/share/dirsrv/schema\"
> > > > > -I../389-ds-base/src/nunc-stans/include/ -I/usr/include
> > > > > -I/usr/include/nss -I/usr/include/nspr -I/usr/include/nspr
> > > > > -I/usr/include/sasl -I/usr/include -I/usr/include
> > > > > -I../389-ds-base/src/libsds/include/
> > > > > -I../389-ds-base/src/libsds/external/ -I/usr/include/nspr
> > > > > -I../389-ds-base/src/svrcore/src/ -g -pipe -Wall -fexceptions
> > > > > -fstack-protector --param=ssp-buffer-size=4 -m64
> > > > > -mtune=generic -MT
> > > > > ldap/servers/slapd/libslapd_la-libglobs.lo -MD -MP -MF
> > > > > ldap/servers/slapd/.deps/libslapd_la-libglobs.Tpo -c
> > > > > ../389-ds-base/ldap/servers/slapd/libglobs.c -fPIC -DPIC -o
> > > > > ldap/servers/slapd/.libs/libslapd_la-libglobs.o
> > > > > ../389-ds-base/ldap/servers/slapd/libglobs.c: In function
> > > > > 'config_set_malloc_mxfast':
> > > > > ../389-ds-base/ldap/servers/slapd/libglobs.c:8107:9: warning:
> > > > > implicit
> > > > > declaration of function 'mallopt' [-Wimplicit-function-
> > > > > declaration]
> > > > > mallopt(M_MXFAST, mxfast);
> > > > > ^~~~~~~
> > > > > ../389-ds-base/ldap/servers/slapd/libglobs.c:8107:17: error:
> > > > > 'M_MXFAST' undeclared (first use in this function)
> > > > > mallopt(M_MXFAST, mxfast);
> > > > > ^~~~~~~~
> > > > > ../389-ds-base/ldap/servers/slapd/libglobs.c:8107:17: note:
> > > > > each
> > > > > undeclared identifier is reported only once for each function
> > > > > it
> > > > > appears in
> > > > > ../389-ds-base/ldap/servers/slapd/libglobs.c: In function
> > > > > 'config_set_malloc_trim_threshold':
> > > > > ../389-ds-base/ldap/servers/slapd/libglobs.c:8147:17: error:
> > > > > 'M_TRIM_THRESHOLD' undeclared (first use in this
function)
> > > > > mallopt(M_TRIM_THRESHOLD, trim_threshold);
> > > > > ^~~~~~~~~~~~~~~~
> > > > > ../389-ds-base/ldap/servers/slapd/libglobs.c: In function
> > > > > 'config_set_malloc_mmap_threshold':
> > > > > ../389-ds-base/ldap/servers/slapd/libglobs.c:8194:17: error:
> > > > > 'M_MMAP_THRESHOLD' undeclared (first use in this
function)
> > > > > mallopt(M_MMAP_THRESHOLD, mmap_threshold);
> > > > > ^~~~~~~~~~~~~~~~
> > > > > make[1]: *** [Makefile:9925: ldap/servers/slapd/libslapd_la-
> > > > > libglobs.lo] Error 1
> > > > > make[1]: Leaving directory '/BUILD'
> > > > > make: *** [Makefile:4491: all] Error 2
> > > > >
> > > > > I'm using the attached Dockerfile to conduct the build. Not
> > > > > sure what
> > > > > other info you might find relevant, but please let me know if
> > > > > there's
> > > > > more I can provide, or if I should ask on a different list.
> > > > >
> > > > > Is there a way around this?
> > > >
> > > > Hi Brian,
> > > > Is M_MMAP_THRESHOLD defined in /usr/include/malloc.h?
> > > > It is on Fedora/RHEL:
> > > > include/malloc.h:#define M_MMAP_THRESHOLD -3
> > > >
> > > > The workaround would be to explicitly define M_MMAP_THRESHOLD
> > > > in libglobs.c
> > >
> > > Actually you would need to define MX_FAST as well. Perhaps
> > > "alpine' is not registering as a LINUX platform. In that case
> > > try this code change:
> > >
> > > diff --git a/ldap/servers/slapd/libglobs.c
> > > b/ldap/servers/slapd/libglobs.c
> > > index a31a340ff..7098c8189 100644
> > > --- a/ldap/servers/slapd/libglobs.c
> > > +++ b/ldap/servers/slapd/libglobs.c
> > > @@ -128,9 +128,7 @@
> > > #endif /* USE_SYSCONF */
> > > #include "slap.h"
> > > #include "plhash.h"
> > > -#if defined(LINUX)
> > > #include <malloc.h>
> > > -#endif
> > >
> > > #define REMOVE_CHANGELOG_CMD "remove"
> >
> > Hi Brian,
> > Did you make this code change above? Did it solve it?
> > Thanks,
> > Mark
> > >
> > > > HTH,
> > > > Mark
> > > >
> > > > > Thanks much,
> > > > > Brian
> > > > >
> > > > >
> > > > > _______________________________________________
> > > > > 389-devel mailing list -- 389-devel(a)lists.fedoraproject.org
> > > > > To unsubscribe send an email to 389-devel-leave(a)lists.fedorap
> > > > >
roject.org
> > > > > Fedora Code of Conduct:
https://getfedora.org/code-of-conduct
> > > > > .html
> > > > > List Guidelines:
https://fedoraproject.org/wiki/Mailing_list_
> > > > > guidelines
> > > > > List Archives:
https://lists.fedoraproject.org/archives/list/
> > > > > 389-devel(a)lists.fedoraproject.org
> > > >
> > > >
> > > > _______________________________________________
> > > > 389-devel mailing list -- 389-devel(a)lists.fedoraproject.org
> > > > To unsubscribe send an email to 389-devel-leave(a)lists.fedorapro
> > > >
ject.org
> > > > Fedora Code of Conduct:
https://getfedora.org/code-of-conduct.h
> > > > tml
> > > > List Guidelines:
https://fedoraproject.org/wiki/Mailing_list_gu
> > > > idelines
> > > > List Archives:
https://lists.fedoraproject.org/archives/list/38
> > > > 9-devel(a)lists.fedoraproject.org
>
> _______________________________________________
> 389-devel mailing list -- 389-devel(a)lists.fedoraproject.org
> To unsubscribe send an email to 389-devel-leave(a)lists.fedoraproject.o
> rg
> Fedora Code of Conduct:
https://getfedora.org/code-of-conduct.html
> List Guidelines:
https://fedoraproject.org/wiki/Mailing_list_guidelin
> es
> List Archives:
https://lists.fedoraproject.org/archives/list/389-deve
> l(a)lists.fedoraproject.org