Bug#896658: qtbase-opensource-src FTBFS on alpha: ambiguous call of atime()
El viernes, 11 de mayo de 2018 22:39:55 -03 Michael Cree escribió: > On Tue, May 01, 2018 at 10:21:11AM -0300, Lisandro Damián Nicanor Pérez Meyer wrote: > > > qtbase-opensource-src FTBFS on Alpha [1] due to an ambiguous > > > > Thanks for the very clear explanation! There are two possible ways out > > here: > > > > 1) Preferred by us Qt maintainers: file a bug in bugreports.qt.io and send > > us the link so we can follow it. > > I've tired making an account there to report the bug. What a painful > experience: it tried to solicit information off me for commercial > advertising purposes (which is totally unacceptable), and after many > more painful and unclear steps I finally got to the bug web pages. None of them are really necessary. I admit I have done those steps long ago so maybe it has changed a lot in the meantime. > But I don't know what to do. I can't work out the products or > components (none match the Debian source package names or seem > to bear much relationship to them) so I am totally lost. That's actually normal You are looking for Core, which is the base of everything else. > I now regret attempting to make an account there and wish I could > just completely delete it. > > Please, would you file the bug upstream, I'm not having anything > more to do with that obnoxious web site. Only if you subscribe to it afterwards. Acting as a proxy with regards arch stuff normally does not works out well, it's preferably to have the knowledgeable people around. Of course I'll be more than happy to assist you in the process. So if you agree please just tell me and I'll file the bug. -- "La política es una actividad noble. Hay que revalorizarla, ejerciéndola con vocación y una dedicación que exige testimonio, martirio, o sea, morir por el bien común." Padre Bergoglio - http://www.lanacion.com.ar/1153060 Lisandro Damián Nicanor Pérez Meyer http://perezmeyer.com.ar/ http://perezmeyer.blogspot.com/ signature.asc Description: This is a digitally signed message part.
Bug#896658: qtbase-opensource-src FTBFS on alpha: ambiguous call of atime()
Hi Michael! Sorry for the delay. El lunes, 23 de abril de 2018 06:27:34 -03 Michael Cree escribió: > Source: qtbase-opensource-src > Version: 5.10.1+dfsg-5 > Severity: important > Justification: fails to build from source (but built in past) > User: debian-al...@lists.debian.org > Usertags: ftbfs > Tags: patch > > qtbase-opensource-src FTBFS on Alpha [1] due to an ambiguous > resolution of the overloaded call to atime() with definitions of > atime() at lines 246, 254 and 299 in > src/corelib/io/qfilesystemengine_unix.cpp. The one at line 299 > is declared as: > > Q_DECL_UNUSED static typename std::enable_if<(::st_atimensec, true) > ... > > which I guess (I don't know C++ very well) means that if the field > st_atimensec is present then include that declaration of atime(). On > Alpha Linux this field is present in the struct stat declaration in > the header file (sys/stat.h) inside a union declaration, which looks > to be a unique definition of struct stat amongst the Linicies. So > this definition of atime() at line 299 applies on Alpha Linux and > conflicts with one of the earlier definitions at lines 246 and 254. > > I don't know if this is a bug in the header file (i.e. glibc) or > present for historical reasons (Alpha Linux being the first 64-bit > Linux does have some idiosyncrasies not repeated in later 64-bit > Linicies), nevertheless I attach a patch that disables the second > confounding definition of atime() at line 299 on Alpha only. With > the patch qtbase-opensource-src builds to completion on Alpha. Thanks for the very clear explanation! There are two possible ways out here: 1) Preferred by us Qt maintainers: file a bug in bugreports.qt.io and send us the link so we can follow it. Notice that I'm asking you to do it because you are the alpha porter, so you will be the right one to reply to possible upstream's questions. Of course as soon as you send us the bug link I'll subscribe to it to follow it and try to help if possible. I can also push this simple patch to upstream's gerrit once the bug is filed (had it be more involved I would need to ask you to do it because of copyright, but in this case it's pretty straightforward). Why is this preferable? Because upstream tends to know if the solution is right or if it should be fixed in, let's say, glibc. They also know the code quirks much better than us and will probably notice if this affects something else. 2) We ship a Debian delta for this. Doable, but definitely not the best thing. So, pick one ;-) (pun intended :-P) Cheers, Lisandro. -- Trabaja como si no necesitaras el dinero. Ama como si nunca hubieses sido herido. Baila como si nadie estuviera mirando. Canta como si nadie escuchara. Vive como si fuera el Cielo en la Tierra. Anónimo Lisandro Damián Nicanor Pérez Meyer http://perezmeyer.com.ar/ http://perezmeyer.blogspot.com/ signature.asc Description: This is a digitally signed message part.
Bug#896658: qtbase-opensource-src FTBFS on alpha: ambiguous call of atime()
Source: qtbase-opensource-src Version: 5.10.1+dfsg-5 Severity: important Justification: fails to build from source (but built in past) User: debian-al...@lists.debian.org Usertags: ftbfs Tags: patch qtbase-opensource-src FTBFS on Alpha [1] due to an ambiguous resolution of the overloaded call to atime() with definitions of atime() at lines 246, 254 and 299 in src/corelib/io/qfilesystemengine_unix.cpp. The one at line 299 is declared as: Q_DECL_UNUSED static typename std::enable_if<(::st_atimensec, true) ... which I guess (I don't know C++ very well) means that if the field st_atimensec is present then include that declaration of atime(). On Alpha Linux this field is present in the struct stat declaration in the header file (sys/stat.h) inside a union declaration, which looks to be a unique definition of struct stat amongst the Linicies. So this definition of atime() at line 299 applies on Alpha Linux and conflicts with one of the earlier definitions at lines 246 and 254. I don't know if this is a bug in the header file (i.e. glibc) or present for historical reasons (Alpha Linux being the first 64-bit Linux does have some idiosyncrasies not repeated in later 64-bit Linicies), nevertheless I attach a patch that disables the second confounding definition of atime() at line 299 on Alpha only. With the patch qtbase-opensource-src builds to completion on Alpha. Cheers Michael. [1] https://buildd.debian.org/status/fetch.php?pkg=qtbase-opensource-src=alpha=5.10.1%2Bdfsg-5=1523222004=0 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -292,7 +292,7 @@ { return timespecToMSecs(statBuffer.st_mtimespec); } #endif -#ifndef st_mtimensec +#if !defined(st_mtimensec) && !defined(__alpha__) // Xtimensec template Q_DECL_UNUSED static typename std::enable_if<(::st_atimensec, true), qint64>::type