1.25 has been released.
- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Advanced Search
Nov 14 2016
ping
Distinguishing between 32 and 64 bit Windows in the same development package
works on Windows but only because 64 bit Windows also supports 32 bit Windows.
On most other platforms this is not the case. For a different ABI it is quite
common to require the installation of a platform specific development package.
You won't change the design to support sloppy build systems which would only
trigger hard to find bugs.
Fixed in 40e5ff0a0084c0d9521b401db4f38885bfdae233.
Sep 30 2016
ping
Jul 29 2016
This particular problem of assertion error, it was fixed in 1.22. So, I close this.
We also have T2378 for a possible change for Solaris/sparc. Please continue
there.
I believe that it's fixed in 1.22. Closing.
Closing, as I confirmed that -lrt is not needed any more in Solaris Userland
project:
https://hg.java.net/hg/solaris-userland~gate
Jul 26 2016
IMHO, it's pretty uncommon from the packaging point of view to deliver
different generic header files for different platforms (one can meet
platform related ifdefs much often). It necessarily moves the platform
decision rules into the source code of the library consumer.
Jul 19 2016
Yes, that is very likely the same bug. Feel free to reopen this report if yuo
can still reproduce it, in which case a backtrace would be very handy.
Fixed in 28fd0ab.
Jul 14 2016
Jun 19 2016
I can't find an explanation why gentoo inserts "-hardfloat". I doubt that this
is willy-nilly and as long as this has not been figured out, there is a
possibility of a different ABI and thus we can't simply alias it. Can you
please work with Kristian or someone else from gentoo to figure this out?
Thanks for binutils link.
Again, the host is not my invention. I linked it before and I'll do it again:
https://wiki.gentoo.org/wiki/Raspberry_Pi.
Gentoo's cross-compile tool, crossdev, suggests using "-hardfloat-" and "-
softfloat-" in the vendor field.
And here is how binutils handles this (they don't shy away from asterisks):
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob;f=bfd/config.bfd
Jun 16 2016
Is armv7a-hardfloat-linux-gnu guaranteed to be ABI compatible to some other arm
triplet? If that is the case, I suggest to either drop your(?) invention of
-hardfloat- or, better, to work with the config mainatiners to make sure it is
viewed as an alias.
How does binutils handle this triplet?
If you can describe the user base for that triplet, I may add an exception to
mkheader to get things done faster.
I'm sorry if your understanding of valid hostnames, acceptable by GNU projects, is
two decades old but this project happens to be the only one that assumes there
exists a finite list of valid hostnames without using pattern matching.
Using https://wiki.gentoo.org/wiki/Raspberry_Pi and a hostname of armv7a-
hardfloat-linux-gnu, with the notable exception of libgpg-error, I have been able
to compile and install all other GNU utilities included the core set of Gentoo
Linux, whether via the package's giving configure script or by use of autoreconf.
Hare are just a few of such GNU packages that I have personally been able to build
and install using the hostname "armv7a-hardfloat-linux-gnu":
coreutils-8.25
bash-4.3_p42
diffutils-3.3
findutils-4.6.0
grep-2.25
groff-1.22.3
gzip-1.8
tar-1.29
glibc-2.23
less-483
gawk-4.1.3
which-2.21
nettle-3.2
glibc-2.23
gcc-5.3.0
readline-6.3_p8
nano-2.5.3
The only other GNU package that doesn't compile for me is autogen. But that's due
to a lack of cross-compile support. It otherwise builds just fine natively on
armv7a-hardfloat-linux-gnu.
I would appreciate it if you could provide a specific GNU package using autotools
that you assert should fail to support such a hostname, other than this one, so
that I may provide a build log demonstrating that it indeed does.
Jun 15 2016
1.23 has meanwhile been released.
Fixed with commit 7ed1502 for 1.23. I used your method.
What is smartgit? What OS are you using?
[gpg-error version seems to be 1.21]
Sorry, if _you_ want support for your _new target_ you should make sure that it
is supported by the GNU autotools which is used by a lot of software. This will
the soon be used by GnuPG etc.
It is entirely fine to point us new config versions with support for your
target. We will the update them in our packages - this is how we have done it
for close to 2 decades.
I applied your patch (commit 28fd0ab) and will do a new release soon.
Note: the comment 2) in T2378 (jf on Jun 04 2016, 07:04 PM / Roundup) [https://bugs.gnupg.org/gnupg/msg8416]
is not correct. The original text says:
- 8< ---
- the fix updates only the external gpgrt_lock_t; it's internal
counterpart _gpgrt_lock_t is not updated. This causes that functions
working with the POSIX mutexes (gpgrt_lock_*()) could access misaligned
addresses - that results in Bus Errors on SPARC.
- 8< ---
The fact is that _gpgrt_lock_t already contains pthread_mutex_t thus it
is correctly aligned (alignes on 8B boundary). The problem pops up if
the outer gpgrt_lock_t is aligned on 4 bytes boundary, while the
internal _gpgrt_lock_t in aligned on 8 bytes.
Please, find below the preliminary suggested fix:
- ./src/gen-posix-lock-obj.c.orig Mon Jun 13 08:07:53 2016
+++ ./src/gen-posix-lock-obj.c Mon Jun 13 08:08:40 2016
@@ -42,21 +42,8 @@
#endif
#endif
-/* Special requirements for certain platforms. */
- define USE_LONG_DOUBLE_FOR_ALIGNMENT 0
-#if defined(sun) && !defined (LP64__) && !defined(_LP64)
-/* Solaris on 32-bit architecture. */
- define USE_DOUBLE_FOR_ALIGNMENT 1
-#else
- define USE_DOUBLE_FOR_ALIGNMENT 0
-#endif
-#if defined(hppa)
- define USE_16BYTE_ALIGNMENT 1
-#else
- define USE_16BYTE_ALIGNMENT 0
-#endif
-#if USE_16BYTE_ALIGNMENT && !HAVE_GCC_ATTRIBUTE_ALIGNED
+#if defined(hppa) && !HAVE_GCC_ATTRIBUTE_ALIGNED
- error compiler is not able to enforce a 16 byte alignment #endif
@@ -122,12 +109,14 @@
"\n"
"#define GPGRT_LOCK_INITIALIZER {%d,{{",
SIZEOF_PTHREAD_MUTEX_T,- if USE_16BYTE_ALIGNMENT
+/* Special requirements for certain platforms. */
+# ifdef (hppa)
" int _x16_align __attribute__ ((aligned (16)));\n",
- elif USE_DOUBLE_FOR_ALIGNMENT
- " double _xd_align;\n",
- elif USE_LONG_DOUBLE_FOR_ALIGNMENT
- " long double _xld_align;\n",
+# elif defined(sun)
+ "#if (defined(sparc) || defined(sparc)) && \\\n"
+ " !defined (LP64) && !defined(_LP64)\n"
+ " double _xd_align;\n"
+ "#endif\n",
- else "",
- endif
Jun 13 2016
Jun 8 2016
I would except that config.sub already validates such names as 'armv7a-hardfloat-
linux-gnueabi' so there is nothing to fix. It is libgpg-error that doesn't. If
you feel it should invalidate such names please report that to the GNU config
folks instead. Their repo is at git://git.sv.gnu.org/config.git. Otherwise
pleases fix libgpg-error.
No, that is not acceptable for libgpg-error. Please report that to the GNU config
folks instead. Their repo is at git://git.sv.gnu.org/config.git
If you decide to change your mind, this patch places the logic in configure.ac.
Jun 6 2016
The host naming scheme accepted by this project is really just Debian oriented.
There is nothing saying you have to aid other distro's hostnames but I have yet to
witness a project more unfriendly to non-Debianesque distros that libgpg-error.
You don't have to accept the patch. Understandable, since mkheader would not
ideally be the way to go. But you should at least be open to the idea of
supporting the more liberal host naming schemes that other distros employ.
Jun 4 2016
Jun 1 2016
Ian may have a different opinion on that (now) but the GNU build system defines
it in the way I described it.
May 27 2016
Whether or not config.sub is up to date should be irrelevant as to whether
libgpg-error should be able to handle CPU variants and the second field of a
HOST. It is supposed to be treated as a freeform field (see
http://airs.com/ian/configure/configure_4.html). As to the precision of the r.e,
it is not supposed to fix or mimic the logic of config.sub. It is to
effectively pigeonhole some HOST strings to a valid header file. Can you give me
a scenario where arm*linux-gnueabi shouldn't map to
lock-obj-pub.arm-unknown-linux-gnueabi.h?
Also, what is the source of your assertion that armv7a-hardfloat-linux-gnueabi
is not a valid canonical triplet? Everything that I have ever read about HOST
strings such as "armv7a-hardfloat-linux-gnueabi" is that configure scripts treat
them as valid and parse them with case statements (as demonstrated here
http://airs.com/ian/configure/configure_4.html). They don't demand that the
end-user pass a generic version of HOST, like "arm-unknown-linux-gnueabi". The
only reason I chose to patch mkheader.c instead or configure.ac was to build on
the mapping logic already there.
config.sub is indeed intended to canonicalize triplets. Thus a an up-to-date
config.sub should fix this. In any case you can always override the guessed
value like this:
-/configure --build=$(build-aux/config.guess) --host=arm-unknown-linux-gnueabi
I fear that a single r.e. is not precise enough; config.sub has more complicated
rules.
Apr 26 2016
libgpg-error 1.22 is out with fix. Please test.
libgpg-error 1.2.2 is out. Please test with it.
Apr 15 2016
Thank you for your patch. Yes, we already located the issue is the alignment.
I think that it were good if the MTX were placed at the head. While your patch
works, it changes ABI of the lock object for existing archs, unfortunately.
I fixed the detection of Solaris in:
http://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgpg-error.git;a=commit;h=f7a77c5c236ecec846de9be46703026f9b01008f
And I believe that the bug reported here had gone.
Please test current development master.
Apr 14 2016
The attached is an analysis from the Solaris/SPARC point of view.
One of the possible SPARC specific fixes:
- ./src/posix-lock-obj.h.orig Wed Apr 13 08:24:20 2016
+++ ./src/posix-lock-obj.h Wed Apr 13 08:24:25 2016
@@ -29,7 +29,7 @@
typedef struct
{
- long vers;
+ long long vers;
#if USE_POSIX_THREADS
union {
pthread_mutex_t mtx;- ./src/gen-posix-lock-obj.c.orig Wed Apr 13 08:23:59 2016
+++ ./src/gen-posix-lock-obj.c Wed Apr 13 08:24:29 2016
@@ -66,7 +66,7 @@
int i;
#endif
struct {- long vers;
+ long long vers;
#ifdef USE_POSIX_THREADS
pthread_mutex_t mtx;
#endif
@@ -105,7 +105,7 @@
union and include a long and a pointer to a long. */
printf ("typedef struct\n"
"{\n"- " long _vers;\n"
+ " long long _vers;\n"
" union {\n"
" volatile char _priv[%d];\n"
"%s"@@ -138,7 +138,7 @@
printf ("/* Dummy object - no locking available. */\n"
"typedef struct\n"
"{\n"- " long _vers;\n"
+ " long long _vers;\n"
"} gpgrt_lock_t;\n"
"\n"
"#define GPGRT_LOCK_INITIALIZER {%d}\n",Note, that this was not fully tested on other platforms and might need
additional changes in the header files. I did some minor tests on
Solaris amd64/SPARCv9/SPARCv7, Linux amd64/SPARCv9.
Mar 8 2016
I have only been pulling from .tar.gz files.
I think that I fixed this issue in master. If you have time, please test, from
git repo.
Mar 2 2016
awk --version
GNU Awk 4.1.1, API: 1.1 (GNU MPFR 3.1.3, GNU MP 6.0.0)
Copyright (C) 1989, 1991-2014 Free Software Foundation.
Running the filter from the CLI: nothing happens.
root@/home/actionmystique/Program-Files/Ubuntu/GnuPG/git-libgpg-error# awk
'/^\"POT-Creation-Date:/&&!s{s=1;next};!/^#: /{print}'
^C
Ibraheem very kindly tested again. However, it is still not working completely.
He writes:
It's still core dumping... Out of curiosity, I explicitly defined
'USE_DOUBLE_FOR_ALIGNMENT 1' and the checks were passing on Solaris with no more
core dumps. I guess that means they're on the right track, just have to get the
preprocessor directives right for gcc and Solaris.
Full details are in
https://mail-index.netbsd.org/pkgsrc-users/2016/03/01/msg023078.html
Mar 1 2016
Running from the command line with gawk and mawk, I don't get an error message.
What version of awk are you using? Does this occur when triggering this from
the command line or only when running it from smartgit?
Thank you for clarification. I didn't know that pkgsrc supports other
platforms. Now, I understand.
The intention is that USE_DOUBLE_FOR_ALIGNMENT for Solaris 32-bit version.
I thought that checking ILP32 worked (but not, in fact). I believe that LP64
checking works (at least with GCC).
Feb 29 2016
I'm working on pkgsrc, which is a portable packaging system origination on
NetBSD. I myself work mostly on NetBSD.
However, we have patches for non-NetBSD platforms in pkgsrc, and this patch was
worked on by the two people mentioned earlier. Since I can not test on Solaris,
I asked them to test on Solaris, and Ibraheem did that.
I hope that clears it up.
Let me clarify/confirm. Does it work on Solaris? And now do you speak for NetBSD?
My fix is specific to Solaris (no matter if it's Sparc or not). It doesn't
handle any issues for NetBSD.
I seems that Sparc GNU/Linux doesn't have this alignment issue, but (for me) it
is highly likely that sparc architecutre requires the alignment of 8-byte.
Feb 27 2016
Thank you for the patch.
I don't have the environment, but I asked the original reporter to test.
Sadly, his reply is negative, see:
https://mail-index.netbsd.org/pkgsrc-users/2016/02/27/msg023071.html
Feb 26 2016
Thank you for your report. Yes, it is the alignment issue.
Please test.
Feb 15 2016
Thanks for debugging this. An alternative for your patch would be to use
es_fileno_unlocked but your idea is also fine.
Feb 3 2016
I think that we could add -lrt in configure script.
Solaris also has a problem for lock object.
Its pthread_mutex_t seems have alignment of 8-byte.
In posix-lock-obj.h, we will have a padding after vers and the union u.
So, it fails at assert (!"sizeof lock obj");
Reference:
http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/sys/types.h
Dec 27 2015
due to pth-2.0.7/bin not being added to PATH