[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
1.2.10 and Digital UNIX 4.0D
When building libbackends.a in servers/slapd, Digital UNIX 4.0D gives
the error:
gmake[5]: Entering directory
`/opt/build/openldap-1.2.10/servers/slapd'
ar: Warning: creating libbackends.a
a - ldbmabandon.o
a - ldbmadd.o
a - ldbmalias.o
a - ldbmattr.o
a - ldbmbind.o
a - ldbmcache.o
a - ldbmclose.o
a - ldbmcompare.o
a - ldbmconfig.o
a - ldbmdbcache.o
a - ldbmdelete.o
a - ldbmdn2id.o
a - ldbmfilterindex.o
a - ldbmgroup.o
a - ldbmid2children.o
a - ldbmid2entry.o
a - ldbmidl.o
a - ldbmindex.o
a - ldbminit.o
a - ldbmkerberos.o
a - ldbmmodify.o
a - ldbmmodrdn.o
a - ldbmnextid.o
a - ldbmsearch.o
a - ldbmunbind.o
a - ldbmversion.o
added backend library back-ldbm/libback-ldbm.a
ar: Error: ________64ELEL_ cannot create
a - passwdconfig.o
a - passwdsearch.o
a - passwdversion.o
added backend library back-passwd/libback-passwd.a
ar: Error: ________64ELEL_ cannot create
a - shellabandon.o
a - shelladd.o
a - shellbind.o
a - shellcompare.o
a - shellconfig.o
a - shelldelete.o
a - shellfork.o
a - shellinit.o
a - shellmodify.o
a - shellmodrdn.o
a - shellresult.o
a - shellsearch.o
a - shellunbind.o
a - shellversion.o
added backend library back-shell/libback-shell.a
-rw-rw-r-- 1 china src 2453018 May 18 21:27 libbackends.a
The following code snippet from servers/slapd/Makefile builds
libbackends.a:
libbackends.a: .backend
@$(RM) -r tmp
@$(MKDIR) tmp
@-for i in back-*/*.a; do \
( \
cd tmp; \
$(AR) x ../$$i; \
pre=`echo $$i | sed -e 's/\/.*$$//' -e 's/back-//'`; \
for j in *.o; do \
mv $$j $${pre}$$j; \
done; \
$(AR) ruv libbackends.a *.o 2>&1 | grep -v truncated; \
$(RM) *.o __.SYMDEF; \
echo "added backend library $$i"; \
); \
done
@mv -f tmp/libbackends.a ./libbackends.a
@$(RM) -r tmp
@if [ ! -z "$(RANLIB)" ]; then \
$(RANLIB) libbackends.a; \
fi
@ls -l libbackends.a
The contents of one of the back-*/*.a files (say
back-passwd/libback-passwd.a) is:
% ar t back-passwd/libback-passwd.a
________64ELEL_
search.o
config.o
version.o
When extracting the files in this archive (as is done in the code
snippet above), "________64ELEL_" is created with permission 000. So,
there is no error when the first back-*/*.a file is extracted. When
the second is extracted, it tries to overwrite tmp/________64ELEL_
which is not allowed, hence the "ar: Error: ________64ELEL_ cannot
create" error in the error above. The patch attached fixes the
problem.
--
albert chin (china@thewrittenword.com)
-- snip snip
--- servers/slapd/Makefile.in.orig Fri May 19 09:38:41 2000
+++ servers/slapd/Makefile.in Fri May 19 09:38:52 2000
@@ -64,7 +64,7 @@
mv $$j $${pre}$$j; \
done; \
$(AR) ruv libbackends.a *.o 2>&1 | grep -v truncated; \
- $(RM) *.o __.SYMDEF; \
+ $(RM) *.o __.SYMDEF ________64ELEL_; \
echo "added backend library $$i"; \
); \
done