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.

Thanks again for the help,
Brian

On Wed, Oct 17, 2018, 5:27 PM Mark Reynolds <mreynolds@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@lists.fedoraproject.org
To unsubscribe send an email to 389-devel-leave@lists.fedoraproject.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@lists.fedoraproject.org

_______________________________________________
389-devel mailing list -- 389-devel@lists.fedoraproject.org
To unsubscribe send an email to 389-devel-leave@lists.fedoraproject.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@lists.fedoraproject.org