Re: port the extended stdio primitives to EMX+GCC
Bruno Haible <[EMAIL PROTECTED]> wrote: > The system that Elbert Pol is talking about is derived from emx+gcc (the > old but well-known POSIX implementation for DOS and OS/2 [the DOS part was > much more reliable than DJGPP]). > > I'm committing first a port for emx+gcc. Untested. > > Jim, at the end you find a patch to m4/fpending.m4, part of the same family > of functions. Is that OK to commit? I derived that information from the fflush > implementation which goes roughly like this: > > n = stream->_ptr - stream->_buffer; > if (n > 0 && _stream_write (stream->_handle, stream->_buffer, n) <= 0) > { > stream->_flags |= _IOERR; > result = EOF; > } > > I put the EMX case quite far down in the list, to minimize the risk of > disturbing an already supported platform. ... That looks right. Go ahead. Thank you!
stdarg: don't put compiler in gnu99 mode by default
My gnulib-comp.m4 contains, from modules/stdarg: dnl Some compilers (e.g., AIX 5.3 cc) need to be in c99 mode dnl for the builtin va_copy to work. With Autoconf 2.60 or later, dnl AC_PROG_CC_STDC arranges for this. With older Autoconf AC_PROG_CC_STDC dnl shouldn't hurt, though installers are on their own to set c99 mode. AC_REQUIRE([AC_PROG_CC_STDC]) This puts the compiler in gnu99 mode with gcc. This causes problems on Mac OS X if the package (e.g., gnutls) is linked with code that was not compiled in gnu99 mode, for example GMP or Guile. The problem appears to be conflicting linker behaviour for 'extern inline' and a problem with the Mac OS X linker. See: http://thread.gmane.org/gmane.network.gnutls.general/1061/focus=1136 The current solution in stdarg for the va_copy problem seems ugly to me. For example, it doesn't test for a missing feature before applying a workaround. Can't we make the code do a feature-test, so it only puts the compiler in gnu99 mode if va_copy doesn't work? Or move all this to a specific 'va_copy' module? Not everyone needs va_copy. Thanks, /Simon
Re: git gc?
Paolo Bonzini <[EMAIL PROTECTED]> wrote: > I don't know is something's wrong with git gc --auto support, but > there's definitely a need to run git gc on gnulib's repository. Hi Paolo, Thanks for the heads-up. I see that the repository currently weighs in at 1.2GB. That's crazy. I'm repacking it now. Looks like the process will take at least 10-20 minutes.
git gc?
I don't know is something's wrong with git gc --auto support, but there's definitely a need to run git gc on gnulib's repository. Paolo
making a git-merge-changelog package
I just made this script that prepares a git-merge-changelog tarball. I don't know if it would be useful to have it in a cron job somewhere. It needs git in the path. #! /bin/sh mkdir -p git-merge-changelog cd git-merge-changelog if test -d gnulib/.git; then (cd gnulib && git pull) else git clone git://git.sv.gnu.org/gnulib gnulib fi cat > configure.ac <<\EOF AC_PREREQ(2.61) AC_INIT(git-merge-changelog, 0.0, bug-gnulib@gnu.org) AC_CONFIG_AUX_DIR(build-aux) AC_CONFIG_HEADERS(config.h) AC_PROG_CC AC_PROG_INSTALL gl_EARLY gl_INIT AM_INIT_AUTOMAKE AC_CONFIG_FILES(Makefile lib/Makefile) AC_OUTPUT EOF cat > Makefile.am <<\EOF SUBDIRS = lib ACLOCAL_AMFLAGS = -I m4 AUTOMAKE_OPTIONS = foreign all-local:; cp lib/git-merge-changelog$(EXEEXT) . distclean-local:; rm -f git-merge-changelog$(EXEEXT) EOF gnulib/gnulib-tool --import git-merge-changelog autoreconf -fvi mkdir -p build cd build ../configure make distcheck cp git-merge-changelog-0.0.tar.gz .. cd .. rm -rf build
Fwd: Re: Working os/2 configuratie
Elbert Pol's answer. --- Begin Message --- Hoi Bruno, I attach the output as out Bruno Haible wrote: Eric Blake wrote: [Please keep bug-gnulib in the loop, since this problem affects multiple gnulib clients, and since Bruno's code is more impacted than mine by knowing the innards of FILE] Hi Eric, Thanks for the forward. The attached is identified (by Google codesearch) as coming from Innotek's libc port. It was announced in [1] and [2]. Now their site suffers from deconstruction, especially after they have been bought by Sun. The available downloads are [3]..[9]. The libc appears to be a mix between the EMX libc, the FreeBSD libc, and GNU libc. The stdio is from EMX libc. Then there is also (probably a newer development) [10] and [11]. Elbert, You have not said whether your system uses [3]..[9] or [10]..[11]. If you want your system to be supported, we need from you the set of predefined macros from gcc. The output of this command sequence: $ touch empty.c $ gcc -E -dM empty.c Bruno [1] http://www.os2.cz/news1800.html [2] http://www.skins.cz/arr2004/zpen8377.shtml [3] http://download.innotek.de/gccos2/3.2.2-Beta4/gcc-3.2.2-beta4csd1.zip [4] http://download.innotek.de/gccos2/3.2.2-Beta4/gcc-3.2.2-beta4-src-emx.zip [5] http://download.innotek.de/gccos2/runtime/libc01.zip [6] http://download.innotek.de/gccos2/runtime/libc02.zip [7] http://download.innotek.de/gccos2/runtime/libc03.zip [8] http://download.innotek.de/gccos2/runtime/libc04.zip [9] http://download.innotek.de/gccos2/runtime/libc04fix1.zip [10] http://svn.netlabs.org/libc/ [11] ftp://ftp.netlabs.org/pub/gcc/ <>--- End Message ---
Re: Fwd: Re: Working os/2 configuratie
Elbert Pol wrote: > #define _X86_ 1 > #define __32BIT__ 1 > #define __EMX__ 1 > #define __INNOTEK_LIBC__ 0x006 > #define __KLIBC__ 0 > #define __KLIBC_MINOR__ 6 > #define __KLIBC_PATCHLEVEL__ 2 > #define __KLIBC_VERSION__ 0x00060002 > #define __OS2__ 1 > #define __i386 1 > #define __i386__ 1 Thank you. This defines __KLIBC__ and __INNOTEK_LIBC__ as unique indicators, but also __EMX__. Since the stdio part of this mixed-up libc is the same as the one from emx, we can leave the conditional for __EMX__ as it is. The m4 snapshot that Eric made for you should be usable on your system. Bruno
Re: git gc?
Jim Meyering <[EMAIL PROTECTED]> wrote: > Paolo Bonzini <[EMAIL PROTECTED]> wrote: >> I don't know is something's wrong with git gc --auto support, but >> there's definitely a need to run git gc on gnulib's repository. > > Thanks for the heads-up. > I see that the repository currently weighs in at 1.2GB. > That's crazy. I'm repacking it now. Looks like the process > will take at least 10-20 minutes. Actually, 685 MB of that was for the git-cvspserver *log* file. I've truncated it to 0. After repacking aggressively, the repository size is down to just 13 MB.
Re: m4 1.4.11 test failures
Hi Eric, No longer the fpurge error now. But other errors. Eric Blake wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 According to Eric Blake on 4/9/2008 10:07 PM: | | http:\\home.comcast.net\~ericblake\m4-1.4.10b.22-be55.tar.gz | signed: | http:\\home.comcast.net\~ericblake\m4-1.4.10b.22-be55.tar.gz.asc Corrected URLs (I'm typing tired tonight): http://home.comcast.net/~ericblake/m4-1.4.10b.22-be55.tar.gz http://home.comcast.net/~ericblake/m4-1.4.10b.22-be55.tar.gz.asc - -- Don't work too hard, make some time for fun as well! Eric Blake [EMAIL PROTECTED] -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.9 (Cygwin) Comment: Public key at home.comcast.net/~ericblake/eblake.gpg Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkf9lEkACgkQ84KuGfSFAYAliQCcCsE4BWF6I+n05ZpMTZxTpqli ej4AniYrMMa2Q4/Ai52ILFF/80ZQ1sRo =j5X3 -END PGP SIGNATURE- make.exe all-recursive make.exe[1]: Entering directory `U:/test' Making all in . make.exe[2]: Entering directory `U:/test' make.exe[2]: Nothing to be done for `all-am'. make.exe[2]: Leaving directory `U:/test' Making all in examples make.exe[2]: Entering directory `U:/test/examples' make.exe[2]: Nothing to be done for `all'. make.exe[2]: Leaving directory `U:/test/examples' Making all in lib make.exe[2]: Entering directory `U:/test/lib' { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat ./alloca.in.h; \ } > alloca.h-t mv -f alloca.h-t alloca.h rm -f configmake.h-t configmake.h { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ echo '#define PREFIX "/m4"'; \ echo '#define EXEC_PREFIX "/m4"'; \ echo '#define BINDIR "/m4/bin"'; \ echo '#define SBINDIR "/m4/sbin"'; \ echo '#define LIBEXECDIR "/m4/libexec"'; \ echo '#define DATAROOTDIR "/m4/share"'; \ echo '#define DATADIR "/m4/share"'; \ echo '#define SYSCONFDIR "/m4/etc"'; \ echo '#define SHAREDSTATEDIR "/m4/com"'; \ echo '#define LOCALSTATEDIR "/m4/var"'; \ echo '#define INCLUDEDIR "/m4/include"'; \ echo '#define OLDINCLUDEDIR "/usr/include"'; \ echo '#define DOCDIR "/m4/share/doc/m4"'; \ echo '#define INFODIR "/m4/share/info"'; \ echo '#define HTMLDIR "/m4/share/doc/m4"'; \ echo '#define DVIDIR "/m4/share/doc/m4"'; \ echo '#define PDFDIR "/m4/share/doc/m4"'; \ echo '#define PSDIR "/m4/share/doc/m4"'; \ echo '#define LIBDIR "/m4/lib"'; \ echo '#define LISPDIR ""'; \ echo '#define LOCALEDIR "/m4/share/locale"'; \ echo '#define MANDIR "/m4/share/man"'; \ echo '#define MANEXT ""'; \ echo '#define PKGDATADIR "/m4/share/m4"'; \ echo '#define PKGINCLUDEDIR "/m4/include/m4"'; \ echo '#define PKGLIBDIR "/m4/lib/m4"'; \ echo '#define PKGLIBEXECDIR "/m4/libexec/m4"'; \ } | sed '/""/d' > configmake.h-t mv configmake.h-t configmake.h rm -f math.h-t math.h { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's/@''INCLUDE_NEXT''@/include_next/g' \ -e 's|@''NEXT_MATH_H''@||g' \ -e 's|@''GNULIB_CEILF''@|0|g' \ -e 's|@''GNULIB_CEILL''@|0|g' \ -e 's|@''GNULIB_FLOORF''@|0|g' \ -e 's|@''GNULIB_FLOORL''@|0|g' \ -e 's|@''GNULIB_FREXP''@|1|g' \ -e 's|@''GNULIB_FREXPL''@|1|g' \ -e 's|@''GNULIB_ISFINITE''@|0|g' \ -e 's|@''GNULIB_LDEXPL''@|0|g' \ -e 's|@''GNULIB_MATHL''@|0|g' \ -e 's|@''GNULIB_ROUND''@|0|g' \ -e 's|@''GNULIB_ROUNDF''@|0|g' \ -e 's|@''GNULIB_ROUNDL''@|0|g' \ -e 's|@''GNULIB_SIGNBIT''@|1|g' \ -e 's|@''GNULIB_TRUNC''@|0|g' \ -e 's|@''GNULIB_TRUNCF''@|0|g' \ -e 's|@''GNULIB_TRUNCL''@|0|g' \ -e 's|@''HAVE_DECL_ACOSL''@|1|g' \ -e 's|@''HAVE_DECL_ASINL''@|1|g' \ -e 's|@''HAVE_DECL_ATANL''@|1|g' \ -e 's|@''HAVE_DECL_COSL''@|1|g' \ -e 's|@''HAVE_DECL_EXPL''@|1|g' \ -e 's|@''HAVE_DECL_FREXPL''@|0|g' \ -e 's|@''HAVE_DECL_LDEXPL''@|1|g' \ -e 's|@''HAVE_DECL_LOGL''@|1|g' \ -e 's|@''HAVE_DECL_SINL''@|1|g' \ -e 's|@''HAVE_DECL_SQRTL''@|1|g' \ -e 's|@''HAVE_DECL_TANL''@|1|g' \ -e 's|@''HAVE_DECL_TRUNC''@|1|g' \ -e 's|@''HAVE_DECL_TRUNCF''@|1|g' \ -e 's|@''HAVE_DECL_TRUNCL''@|1|g' \ -e 's|@''REPLACE_CEILF''@|0|g' \ -e 's|@''REPLACE_CEILL''@|0|g' \ -e 's|@''REPLACE_FLOORF''@|0|g' \ -e 's|@''REPLACE_FLOORL''@|0|g' \ -e 's|@''REPLACE_FREXP''@|1|g' \ -e 's|@''REPLACE_FREXPL''@|1|g' \ -e 's|@''REPLACE_ISFINITE''@|0|g' \ -e 's|@''REPLACE_LDEXPL''
Re: Working os/2 configuratie
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 [Please keep replies on the list.] According to Elbert Pol on 4/10/2008 1:19 PM: | Hi Eric, | | | I did a change to the regex.internal.h | | see the diff file. It looks like __attribute ((regparm (3), stdcall)) is not supported on your platform, so regex_internal.h does need an edit to not try and use that optimization (although it can probably done by making the __i386__ test compound rather than adding another level of #ifdef). | | Now it runs the make without a error :P | | and also make install runs ok. Good to hear. However, without running the testsuite, you may have just installed a broken m4. | | | I attach the make log file and the diff file | | | Btw how to know if the m4 is ported ok ? | Is there a test for it? 'make -k check' - -- Don't work too hard, make some time for fun as well! Eric Blake [EMAIL PROTECTED] -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.9 (Cygwin) Comment: Public key at home.comcast.net/~ericblake/eblake.gpg Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkf+afEACgkQ84KuGfSFAYA58wCeNBYep0QJF7FdmNT1r783zqSX z3AAoLx9sMQnIoWOx09+7M/7zkcfBhT/ =aCdG -END PGP SIGNATURE- --- U:\Tmp\regex_internal.h 2007-12-01 21:55:32 +0100 +++ regex_internal.h2008-04-10 21:06:42 +0200 @@ -420,6 +420,7 @@ struct re_dfa_t; typedef struct re_dfa_t re_dfa_t; +#ifndef __OS2__ #ifndef _LIBC # ifdef __i386__ # define internal_function __attribute ((regparm (3), stdcall)) @@ -427,6 +428,9 @@ # define internal_function # endif #endif +#else +# define internal_function +#endif static reg_errcode_t re_string_realloc_buffers (re_string_t *pstr, Idx new_buf_len) make.exe all-recursive make.exe[1]: Entering directory `U:/test' Making all in . make.exe[2]: Entering directory `U:/test' make.exe[2]: Nothing to be done for `all-am'. make.exe[2]: Leaving directory `U:/test' Making all in examples make.exe[2]: Entering directory `U:/test/examples' make.exe[2]: Nothing to be done for `all'. make.exe[2]: Leaving directory `U:/test/examples' Making all in lib make.exe[2]: Entering directory `U:/test/lib' make.exe all-am make.exe[3]: Entering directory `U:/test/lib' gcc -std=gnu99 -I. -D__EMX__ -DOS2 -D__ST_MT_ERRNO__ -O3 -mcpu=pentium3 -MT regex.o -MD -MP -MF .deps/regex.Tpo -c -o regex.o regex.c mv -f .deps/regex.Tpo .deps/regex.Po gcc -std=gnu99 -I. -D__EMX__ -DOS2 -D__ST_MT_ERRNO__ -O3 -mcpu=pentium3 -MT signbitd.o -MD -MP -MF .deps/signbitd.Tpo -c -o signbitd.o signbitd.c mv -f .deps/signbitd.Tpo .deps/signbitd.Po gcc -std=gnu99 -I. -D__EMX__ -DOS2 -D__ST_MT_ERRNO__ -O3 -mcpu=pentium3 -MT signbitf.o -MD -MP -MF .deps/signbitf.Tpo -c -o signbitf.o signbitf.c mv -f .deps/signbitf.Tpo .deps/signbitf.Po gcc -std=gnu99 -I. -D__EMX__ -DOS2 -D__ST_MT_ERRNO__ -O3 -mcpu=pentium3 -MT signbitl.o -MD -MP -MF .deps/signbitl.Tpo -c -o signbitl.o signbitl.c mv -f .deps/signbitl.Tpo .deps/signbitl.Po gcc -std=gnu99 -I. -D__EMX__ -DOS2 -D__ST_MT_ERRNO__ -O3 -mcpu=pentium3 -MT strtod.o -MD -MP -MF .deps/strtod.Tpo -c -o strtod.o strtod.c mv -f .deps/strtod.Tpo .deps/strtod.Po gcc -std=gnu99 -I. -D__EMX__ -DOS2 -D__ST_MT_ERRNO__ -O3 -mcpu=pentium3 -MT tempname.o -MD -MP -MF .deps/tempname.Tpo -c -o tempname.o tempname.c mv -f .deps/tempname.Tpo .deps/tempname.Po gcc -std=gnu99 -I. -D__EMX__ -DOS2 -D__ST_MT_ERRNO__ -O3 -mcpu=pentium3 -MT vasnprintf.o -MD -MP -MF .deps/vasnprintf.Tpo -c -o vasnprintf.o vasnprintf.c mv -f .deps/vasnprintf.Tpo .deps/vasnprintf.Po gcc -std=gnu99 -I. -D__EMX__ -DOS2 -D__ST_MT_ERRNO__ -O3 -mcpu=pentium3 -MT vasprintf.o -MD -MP -MF .deps/vasprintf.Tpo -c -o vasprintf.o vasprintf.c mv -f .deps/vasprintf.Tpo .deps/vasprintf.Po gcc -std=gnu99 -I. -D__EMX__ -DOS2 -D__ST_MT_ERRNO__ -O3 -mcpu=pentium3 -MT xmalloc.o -MD -MP -MF .deps/xmalloc.Tpo -c -o xmalloc.o xmalloc.c mv -f .deps/xmalloc.Tpo .deps/xmalloc.Po rm -f libm4.a ar cru libm4.a gl_avltree_oset.o c-ctype.o clean-temp.o fatal-signal.o fpurge.o freadahead.o freading.o freadptr.o freadseek.o gl_linkedhash_list.o gl_list.o localcharset.o malloca.o memchr2.o gl_oset.o printf-frexp.o printf-frexpl.o tmpdir.o verror.o version-etc.o version-etc-fsf.o xalloc-die.o xmalloca.o xprintf.o xvasprintf.o xasprintf.o asnprintf.o asprintf.o cloexec.o close-stream.o closein.o closeout.o dup-safer.o exitfail.o fd-safer.o fopen-safer.o frexp.o frexpl.o isnanl.o memmem.o mkstemp-safer.o pipe-safer.o printf-args.o printf-parse.o quote.o quotearg.o regex.o signbitd.o signbitf.o signbitl.o strtod.o tempname.o vasnprintf.o vasprintf.o xmalloc.o echo libm4.a libm4.a rm -f t-charset.alias charset.alias ash.exe ./config.charset 'i386-pc-os2-emx' > t-charset.alias mv t-charset.alias charset.alias rm -f t-ref-add.sed ref-add.sed sed -e '/^#/d' -e 's/@''PACKAGE''@/m4/g' ref-add.sin > t-ref-add.sed mv t-ref-add.sed ref-add.sed rm -f
Re: Working os/2 configuratie
Hi Eric, I attach the check.log it fails :( I also send all i wrote to you @ Bug-m4 and bug-gnulib Eric Blake wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 [Please keep replies on the list.] According to Elbert Pol on 4/10/2008 1:19 PM: | Hi Eric, | | | I did a change to the regex.internal.h | | see the diff file. It looks like __attribute ((regparm (3), stdcall)) is not supported on your platform, so regex_internal.h does need an edit to not try and use that optimization (although it can probably done by making the __i386__ test compound rather than adding another level of #ifdef). | | Now it runs the make without a error :P | | and also make install runs ok. Good to hear. However, without running the testsuite, you may have just installed a broken m4. | | | I attach the make log file and the diff file | | | Btw how to know if the m4 is ported ok ? | Is there a test for it? 'make -k check' - -- Don't work too hard, make some time for fun as well! Eric Blake [EMAIL PROTECTED] -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.9 (Cygwin) Comment: Public key at home.comcast.net/~ericblake/eblake.gpg Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkf+afEACgkQ84KuGfSFAYA58wCeNBYep0QJF7FdmNT1r783zqSX z3AAoLx9sMQnIoWOx09+7M/7zkcfBhT/ =aCdG -END PGP SIGNATURE- check.log.bz2 Description: Binary data
gnulib git now read-only
Hi Jim, Something with the "git gc" may have disturbed the git repository. I now get an error when trying to push some changes: $ git push Counting objects: 7, done. Compressing objects: 100% (4/4), done. Writing objects: 100% (4/4), 376 bytes, done. Total 4 (delta 3), reused 0 (delta 0) error: Unable to append to logs/refs/heads/master: Permission denied To ssh://[EMAIL PROTECTED]/srv/git/gnulib ! [remote rejected] master -> master (failed to write) error: failed to push to 'ssh://[EMAIL PROTECTED]/srv/git/gnulib' Another user observed similar things: http://www.spinics.net/lists/git/msg63450.html PS: What's the big difference between "git gc" and "git repack"? Bruno
Re: gnulib git now read-only
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 According to Bruno Haible on 4/10/2008 5:54 PM: | PS: What's the big difference between "git gc" and "git repack"? | git gc is a newer feature, that does git repack and more all in one command, and as of 1.5.5, runs automatically whenever the project exceeds various thresholds. - -- Don't work too hard, make some time for fun as well! Eric Blake [EMAIL PROTECTED] -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.9 (Cygwin) Comment: Public key at home.comcast.net/~ericblake/eblake.gpg Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkf+yvQACgkQ84KuGfSFAYA7VACgwNIyCmR1I42SgfchnXlNuSI1 7zMAn1Hk+24sxgojE9tuMEy7CMFR30iQ =OXu+ -END PGP SIGNATURE-
Re: gnulib git now read-only
Bruno Haible <[EMAIL PROTECTED]> wrote: > Hi Jim, > > Something with the "git gc" may have disturbed the git repository. I now > get an error when trying to push some changes: > > $ git push > Counting objects: 7, done. > Compressing objects: 100% (4/4), done. > Writing objects: 100% (4/4), 376 bytes, done. > Total 4 (delta 3), reused 0 (delta 0) > error: Unable to append to logs/refs/heads/master: Permission denied > To ssh://[EMAIL PROTECTED]/srv/git/gnulib >! [remote rejected] master -> master (failed to write) > error: failed to push to 'ssh://[EMAIL PROTECTED]/srv/git/gnulib' Hi Bruno. My repacking appears to have made the files in logs/refs/heads/ read-only by group (probably reflecting my umask), in spite of the sticky group-ID bit on the directory. I've fixed the permissions.