[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: 1.2.10 build problems under Digital UNIX 4.0D (ITS#590)



Applied to OPENLDAP_REL_ENG_1_2, please test.

At 02:18 PM 6/13/00 GMT, support@thewrittenword.com wrote:
>Full_Name: The Written Word (support)
>Version: 1.2.10
>OS: Digital UNIX 4.0D
>URL: ftp://ftp.openldap.org/incoming/
>Submission from: (NULL) (216.80.72.157)
>
>
>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.
>
>-- 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
>
>
>
>