Bug#765370: xutils-dev: fix CCOPTIONS/LDOPTIONS causing FTBFS on sciplot on ppc64el [PATCH]
On 10/15/2014 12:17 PM, Julien Cristau wrote: On Wed, Oct 15, 2014 at 11:56:31 -0300, Mauricio Faria de Oliveira wrote: >It happens the patch doesn't disable the ppc64architecture, it just adds >the ppc64el architecture - so if you're in powerpc64 and little endian, >both are defined (see there's no #else in this piece): > Ah, right, I must have been blind... ... This way seems to be how mips is handled, so let's leave it as-is. Haha, no problem. Ok. >One thing I had in mind when writing the other patch was trying not to >modify existing stuff, so not to break what used it before, so maybe >that fits here too - ppc64el is also some sort of ppc64, except for >the endianness-dependent pieces. > I wonder if the -mminimal-toc thing is actually needed on BE ppc64. It seems to have been introduced by https://bugs.freedesktop.org/show_bug.cgi?id=303 but I don't know why. Well, I can't say of it in CCOPTIONS, because it's a valid CC option; but in LDOPTIONS, it's certainly wrong (it's not an emulation mode). BTW, I just noticed sciplot FTBFS on ppc64 too, for the same reason [1]. So if we could just remove that, it seems like it'd be easier all around. There are legitimate reasons one may want -mminimal-toc in CCOPTIONS (I don't understand much of it, but have seen it elsewhere). That said, I certainly wouldn't want to break its users/packages. It would be enough to just remove it from LDOPTIONS for ppc64/el. If you recommend to forward and discuss this upstream, perharps to understand how this happened, I would be willing to help/ask. If you have the time and a quick way to track to the point where CCOPTIONS were added to LDOPTIONS it might help. I can try/learn later, otherwise. What you'd prefer? Thanks for your time and attention. [1] http://buildd.debian-ports.org/status/package.php?p=sciplot&suite=sid -- Mauricio Faria de Oliveira IBM Linux Technology Center -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/543ea5cd.1030...@linux.vnet.ibm.com
Bug#765370: xutils-dev: fix CCOPTIONS/LDOPTIONS causing FTBFS on sciplot on ppc64el [PATCH]
Hi Julien, On 10/15/2014 05:45 AM, Julien Cristau wrote: The 'add ppc64el support' patch seems to make the other one unnecessary, since -mminimal-toc is only added for ppc64architecture, which wouldn't apply to ppc64el? Am I missing something? It happens the patch doesn't disable the ppc64architecture, it just adds the ppc64el architecture - so if you're in powerpc64 and little endian, both are defined (see there's no #else in this piece): + # ifdef __powerpc64__ ++# ifdef __LITTLE_ENDIAN__ ++#ifndef Ppc64elArchitecture ++# define Ppc64elArchitecture ++#endif ++# endif + # ifndef Ppc64Architecture + # define Ppc64Architecture + # endif I haven't discussed the patch with its author. Do you believe this point should be handled differently? (i.e., use an #else) One thing I had in mind when writing the other patch was trying not to modify existing stuff, so not to break what used it before, so maybe that fits here too - ppc64el is also some sort of ppc64, except for the endianness-dependent pieces. Also, have any of these patches been sent upstream? I don't think so. I'd be happy to submit them (w/ the other author's acknowledgement) if you/other maintainers are OK w/ them (as you're more experienced - I only looked at a small piece for fixing it). Thanks! -- Mauricio Faria de Oliveira IBM Linux Technology Center -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/543e8b1f.2090...@linux.vnet.ibm.com
Bug#765370: xutils-dev: fix CCOPTIONS/LDOPTIONS causing FTBFS on sciplot on ppc64el [PATCH]
Package: src:xutils-dev Version: 1:7.7+3 Tags: patch User: debian-powe...@lists.debian.org Usertags: ppc64el The attached patch adds the ppc64el pieces and fixes a FTBFS on sciplot (and potentially others), avoiding to pass -mminimal-toc from CCOPTIONS to LDOPTIONS (because it's incorrect for 'ld -m'). May you please consider it for an upload? Thanks! Details: The fixed FTBFS error [1]: ld -shared -o libsciplot.so.1.36 SciPlot.o SciPlotUtil.o -mminimal-toc -lXm [...] -soname libsciplot.so.1 -lc ld: unrecognised emulation mode: minimal-toc Supported emulations: elf64lppc elf32lppc elf32lppclinux elf32lppcsim elf32ppclinux elf32ppc elf32ppcsim elf64ppc make[2]: *** [shared] Error 1 [1] https://buildd.debian.org/status/fetch.php?pkg=sciplot&arch=ppc64el&ver=1.36-16&stamp=1410447072 -- Mauricio Faria de Oliveira IBM Linux Technology Center diff -Nru xutils-dev-7.7+3/debian/changelog xutils-dev-7.7+3ppc64el1/debian/changelog --- xutils-dev-7.7+3/debian/changelog 2014-05-21 16:46:36.0 -0300 +++ xutils-dev-7.7+3ppc64el1/debian/changelog 2014-10-14 10:49:40.0 -0300 @@ -1,3 +1,12 @@ +xutils-dev (1:7.7+3ppc64el1) UNRELEASED; urgency=medium + + * 98_ppc64el-not-ld-options.diff: Add DefaultNotLDOptions/NOTLDOPTIONS for +filtering out CCOPTIONS that are not valid LDOPTIONS (cause linker errors). + * 99_ppc64el.diff: Add support for ppc64el as little-endian ppc64. +(Credits: Adam Conrad) + + -- Mauricio Faria de Oliveira Tue, 14 Oct 2014 10:45:41 -0300 + xutils-dev (1:7.7+3) unstable; urgency=medium * gccmakedep 1.0.3. diff -Nru xutils-dev-7.7+3/debian/patches/98_ppc64el-not-ld-options.diff xutils-dev-7.7+3ppc64el1/debian/patches/98_ppc64el-not-ld-options.diff --- xutils-dev-7.7+3/debian/patches/98_ppc64el-not-ld-options.diff 1969-12-31 21:00:00.0 -0300 +++ xutils-dev-7.7+3ppc64el1/debian/patches/98_ppc64el-not-ld-options.diff 2014-10-14 10:44:36.0 -0300 @@ -0,0 +1,34 @@ +Description: Some CCOPTIONS are not valid LDOPTIONS (e.g., -mminimal-toc), so filter-out NOTLDOPTIONS +Author: Mauricio Faria de Oliveira +Last-Update: 2014-10-14 + +diff -Nru xorg-cf-files.orig/Imake.tmpl xorg-cf-files/Imake.tmpl +--- a/xorg-cf-files/Imake.tmpl 2014-10-14 10:02:03.0 -0300 b/xorg-cf-files/Imake.tmpl 2014-10-14 10:24:50.0 -0300 +@@ -2165,6 +2165,7 @@ + + CDEBUGFLAGS = DefaultCDebugFlags + CCOPTIONS = DefaultCCOptions /* to distinguish from param flags */ ++ NOTLDOPTIONS = DefaultNotLDOptions /* not to be used as linker options */ + /* + * STD_INCLUDES contains system-specific includes + * TOP_INCLUDES specifies how to get to /usr/include or its build substitute +@@ -2179,6 +2180,7 @@ + LDPRELIB = LdPreLib $(INSTALLED_LIBS) + LDPOSTLIB = LdPostLib + LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_LDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS) ++LDOPTIONS := $(filter-out $(NOTLDOPTIONS),$(LDOPTIONS)) + CXXLDOPTIONS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_CXXLDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS) + +LDLIBS = $(LDPOSTLIBS) $(THREADS_LIBS) $(SYS_LIBRARIES) $(EXTRA_LIBRARIES) +diff -Nru xorg-cf-files.orig/linux.cf xorg-cf-files/linux.cf +--- a/xorg-cf-files.orig/linux.cf 2014-10-14 10:02:03.0 -0300 b/xorg-cf-files/linux.cf 2014-10-14 10:21:52.0 -0300 +@@ -1005,6 +1005,7 @@ + + #ifdef Ppc64Architecture + # define DefaultCCOptions -mminimal-toc ++# define DefaultNotLDOptions -mminimal-toc + # ifndef OptimizedCDebugFlags + # define OptimizedCDebugFlagsDefaultGcc2Ppc64Opt GccAliasingArgs + # endif diff -Nru xutils-dev-7.7+3/debian/patches/99_ppc64el.diff xutils-dev-7.7+3ppc64el1/debian/patches/99_ppc64el.diff --- xutils-dev-7.7+3/debian/patches/99_ppc64el.diff 1969-12-31 21:00:00.0 -0300 +++ xutils-dev-7.7+3ppc64el1/debian/patches/99_ppc64el.diff 2014-10-14 10:44:41.0 -0300 @@ -0,0 +1,32 @@ +Description: Add support for ppc64el as little-endian ppc64. +Author: Adam Conrad +Origin: https://launchpadlibrarian.net/160111286/xutils-dev_1:7.7~1ubuntu5_1:7.7~1ubuntu6.diff.gz +Last-Update: 2014-10-14 + +diff -Nru xutils-dev-7.7~1ubuntu5/xorg-cf-files/Imake.cf xutils-dev-7.7~1ubuntu6/xorg-cf-files/Imake.cf +--- xutils-dev-7.7~1ubuntu5/xorg-cf-files/Imake.cf 2013-07-30 12:22:15.0 -0600 xutils-dev-7.7~1ubuntu6/xorg-cf-files/Imake.cf 2013-12-18 05:22:24.0 -0700 +@@ -930,6 +930,11 @@ + # undef __powerpc__ + # endif + # ifdef __powerpc64__ ++# ifdef __LITTLE_ENDIAN__ ++#ifndef Ppc64elArchitecture ++# define Ppc64elArchitecture ++#endif ++# endif + # ifndef Ppc64Architecture + # define Ppc64Architecture + # endif +diff -Nru xutils-dev-7.7~1ubuntu5/xorg-cf-files/Imake.tmpl xutils-dev-7.7~1ubuntu6/xorg-cf-files/Imake.tmpl +--- xutils-dev
Bug#748983: xcb-util: run dh-autoreconf to update config.{sub, guess} and {libtool, aclocal}.m4
Adding the xcb-util package maintainers. On 08/22/2014 05:11 PM, Mauricio Faria de Oliveira wrote: On 08/22/2014 04:04 PM, Mauricio Faria de Oliveira wrote: I can reproduce the failure now, and will check it soon. Got it. It's just a git submodule missing. [...] $ git submodule update --init# gotcha [...] Where those files went? This commit from 'git log m4/' gave a clue: commit 14747e0ef8dfb6668e2bb2e8a6b0c9ef2dace7b3 [...] This patch depends on the util-common-m4 submodule patch in the m4 path It would be nice to have this documented or automatically done in xcb-util.git, like debian/README, debian/rules, for example. It's understandable that the maintainers are probably aware of that git submodule, but debcheckout didn't retrieve it automatically. It took some time until a non-maintainer could realize it. Thanks, -- Mauricio Faria de Oliveira IBM Linux Technology Center -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/53f7a590.7030...@linux.vnet.ibm.com
Bug#748983: xcb-util: run dh-autoreconf to update config.{sub, guess} and {libtool, aclocal}.m4
Hi Cyril, On 08/22/2014 04:04 PM, Mauricio Faria de Oliveira wrote: I can reproduce the failure now, and will check it soon. Got it. It's just a git submodule missing. I could built xcb-util from git successfully with: $ debcheckout xcb-util $ cd xcb-util $ git submodule update --init # gotcha $ patch -p1 < ~/xcb-util-autoreconf-v2.debdiff $ debuild -b May you please verify it, and consider the patch for an upload? Thank you! P.S.: some details of the investigation: $ autoreconf -vi [...] Makefile.am:6: error: 'pkgconfig_DATA' is used but 'pkgconfigdir' is undefined [...] The definition of pkgconfigdir doesn't occur in the git repo, only in the source package: $ diff -qr xcb-util-0.38 xcb-util [...] Only in xcb-util-0.3.8/m4: xcb_util_common.m4 Only in xcb-util-0.3.8/m4: xcb_util_m4_with_include_path.m4 [...] Where those files went? This commit from 'git log m4/' gave a clue: commit 14747e0ef8dfb6668e2bb2e8a6b0c9ef2dace7b3 Author: Gaetan Nadon Date: Sun Mar 6 17:52:43 2011 -0500 config: use the default xorg .gitignore file This will save future maintenance when module structure/tools change. This patch depends on the util-common-m4 submodule patch in the m4 path Signed-off-by: Gaetan Nadon Signed-off-by: Arnaud Fontaine I googled and read this [1, 2] and verified it: $ cat .gitmodules [submodule "m4"] path = m4 url = git://anongit.freedesktop.org/xcb/util-common-m4.git And done! :) [1] http://lists.x.org/archives/xorg-devel/2011-September/025364.html [2] http://wiki.x.org/wiki/Building_the_X_Window_System/#index6h2 -- Mauricio Faria de Oliveira IBM Linux Technology Center -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/53f7a3e4.1030...@linux.vnet.ibm.com
Bug#748983: xcb-util: run dh-autoreconf to update config.{sub, guess} and {libtool, aclocal}.m4
On 08/22/2014 10:10 AM, Cyril Brulebois wrote: Oh. Since the whole idea was committing stuff to git and uploading, I'm “of course” (at least to me but I should really have mentioned that) building from a “debcheckout xcb-util”. [...] Oops. I didn't get that before. I'm relatively unexperienced. Thanks for mentioning it. I can reproduce the failure now, and will check it soon. cheers, -- Mauricio Faria de Oliveira IBM Linux Technology Center -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/53f79458.8080...@linux.vnet.ibm.com
Bug#748983: xcb-util: run dh-autoreconf to update config.{sub, guess} and {libtool, aclocal}.m4
Hi Cyril, On 08/21/2014 04:49 PM, Mauricio Faria de Oliveira wrote: I'm anyway attaching the list of packages installed on one of these chroots, in case it helps someone figure out what the problem is. Ok, thanks. I'll take a look at it. I looked at it, reproduced the package list to what was possible, forced things a bit, but still could not reproduce that failure. Details of those points: 1) package list I reproduced the package list you sent to the extent it was possible -- some packages don't exist anymore (boost1.53, python3.3, libgnutls28). Some have been gone for a while now (libgnutls28 is June 5 IIRC), so the failure might be related to an old environment as well. I am attaching the package-list diff between my environment and yours. I can't find anything on it that seems to influence autoreconf programs. 2) differences in CDBS? (forced things a bit) I noticed the build log you pasted have no output for 2 CDBS targets: update-config and reverse-config (/usr/share/cdbs/1/rules/buildcore.mk), My 'debuild -b' build log diffs here: rm -f Doxyfile .gitmodules autogen.sh +for i in ./config.guess ./config.sub ; do \ + if test -e $i.cdbs-orig ; then \ + mv $i.cdbs-orig $i ; \ + fi ; \ +done if test -e debian/autoreconf.before; then \ [...] mkdir -p "." +if test -e /usr/share/misc/config.guess ; then \ + for i in ./config.guess ; do \ + if ! test -e $i.cdbs-orig ; then \ + mv $i $i.cdbs-orig ; \ + cp --remove-destination /usr/share/misc/config.guess $i ; \ + fi ; \ + done ; \ +fi +if test -e /usr/share/misc/config.sub ; then \ + for i in ./config.sub ; do \ + if ! test -e $i.cdbs-orig ; then \ + mv $i $i.cdbs-orig ; \ + cp --remove-destination /usr/share/misc/config.sub $i ; \ + fi ; \ + done ; \ +fi dh_autoreconf By reading those build targets' source, the only way I can reproduce that text to be missing (trying to match your build) is by *removing* config.guess/sub. But even with that, autoreconf (and the build) finished successfully: $ rm -f config.guess config.sub $ debuild -b [...] rm -f Doxyfile .gitmodules autogen.sh if test -e debian/autoreconf.before; then \ dh_autoreconf_clean ; \ fi dh_clean rm -f debian/stamp-autotools-files debian/rules build test -x debian/rules mkdir -p "." dh_autoreconf libtoolize: putting auxiliary files in `.'. libtoolize: copying file `./ltmain.sh' libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'. libtoolize: copying file `m4/libtool.m4' libtoolize: copying file `m4/ltoptions.m4' libtoolize: copying file `m4/ltsugar.m4' libtoolize: copying file `m4/ltversion.m4' libtoolize: copying file `m4/lt~obsolete.m4' libtoolize: Remember to add `LT_INIT' to configure.ac. configure.ac:10: installing './compile' configure.ac:10: installing './config.guess' configure.ac:10: installing './config.sub' test -f configure || sh ./autogen.sh [...] touch configure-stamp [...] That said (i.e., our builds have the 'same' package list, and the same build log until dh_autoreconf is run), now I ran out of things to try. I would ask you please consider testing the build on another environment -- more closely matching an official build one. .. or to provide me some more clues about your build environment. Thank you, -- Mauricio Faria de Oliveira IBM Linux Technology Center --- mauricfo.packages.list.pkg_ver 2014-08-22 09:27:38.155310189 -0300 +++ packages.list.pkg_ver 2014-08-22 08:55:40.851192806 -0300 @@ -125,0 +126 @@ +libboost-iostreams1.53.0 1.53.0-6+b2 @@ -135 +136 @@ -libcap-ng0:amd64 0.7.4-2 +libcap-ng0:amd64 0.7.4-1 @@ -146 +146,0 @@ -libcryptsetup4:amd64 2:1.6.6-1 @@ -153,0 +154 @@ +libdb5.1:amd64 5.1.29-7 @@ -158 +158,0 @@ -libdevmapper1.02.1:amd64 2:1.02.88-1 @@ -167,2 +167,2 @@ -libegl1-mesa:amd64 10.2.6-1 -libegl1-mesa-drivers:amd64 10.2.6-1 +libegl1-mesa:amd64 10.2.5-1 +libegl1-mesa-drivers:amd64 10.2.5-1 @@ -190 +190 @@ -libgbm1:amd64 10.2.6-1 +libgbm1:amd64 10.2.5-1 @@ -200,3 +200,3 @@ -libgl1-mesa-dri:amd64 10.2.6-1 -libgl1-mesa-glx:amd64 10.2.6-1 -libglapi-mesa:amd64 10.2.6-1 +libgl1-mesa-dri:amd64 10.2.5-1 +libgl1-mesa-glx:amd64 10.2.5-1 +libglapi-mesa:amd64 10.2.5-1 @@ -212,0 +213 @@ +libgnutls28:amd64 3.2.14-1 @@ -257,0 +259 @@ +liblognorm0 0.3.7-1 @@ -271,0 +274 @
Bug#748983: xcb-util: run dh-autoreconf to update config.{sub, guess} and {libtool, aclocal}.m4
On 08/21/2014 04:27 PM, Cyril Brulebois wrote: I'm not exactly happy with uploading a change that introduces a FTBFS in conditions that haven't been determined yet. :/ And I can't promise I'll be able to debug this right away since I'm otherwise busy with d-i. Sure. That's certainly understandable. I'm anyway attaching the list of packages installed on one of these chroots, in case it helps someone figure out what the problem is. Ok, thanks. I'll take a look at it. -- Mauricio Faria de Oliveira IBM Linux Technology Center -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/53f64d3a.1030...@linux.vnet.ibm.com
Bug#748983: xcb-util: run dh-autoreconf to update config.{sub, guess} and {libtool, aclocal}.m4
Package: src:xcb-util Version: 0.3.8-2 Tags: patch Hi Cyril, Thanks for looking at this. > at Aurelien's request, I've tried applying your patch and triggering a > build on amd64 in a sid chroot but it failed with: The build with the patch worked for me, in a amd64 sid chroot. It built successfully, producing identical package contents. I am attaching a debdiff for your convenience. Any chance something was missing on your environment? It doesn't hurt to ask. :) This is what I done: $ sudo debootstrap --arch=amd64 --variant=buildd sid sid.amd64 http://ftp.br.debian.org/debian (performed 2 package builds w/ dpkg-buildpackage: without and with the patch) $ for deb in *.deb; do dpkg-deb -c $deb | cut -d. -f2- | sort > $deb.contents; done $ diff libxcb-util0_0.3.8-2{,ppc64el1}_amd64.deb.contents $ echo $? 0 $ diff libxcb-util0-dev_0.3.8-2{,ppc64el1}_amd64.deb.contents $ echo $? 0 Cheers, -- Mauricio Faria de Oliveira IBM Linux Technology Center diff -Nru xcb-util-0.3.8/debian/changelog xcb-util-0.3.8/debian/changelog --- xcb-util-0.3.8/debian/changelog 2012-02-09 22:42:01.0 -0200 +++ xcb-util-0.3.8/debian/changelog 2014-08-21 15:05:41.0 -0300 @@ -1,3 +1,9 @@ +xcb-util (0.3.8-2ppc64el1) UNRELEASED; urgency=medium + + * Build with dh-autoreconf. Thanks to Breno Henrique Leitao. (Closes: #748983) + + -- Mauricio Faria de Oliveira Thu, 21 Aug 2014 14:57:24 -0300 + xcb-util (0.3.8-2) unstable; urgency=low * Convert to multi-arch. Thanks to Tom Ellis diff -Nru xcb-util-0.3.8/debian/control xcb-util-0.3.8/debian/control --- xcb-util-0.3.8/debian/control 2012-02-08 17:40:41.0 -0200 +++ xcb-util-0.3.8/debian/control 2014-08-21 15:05:41.0 -0300 @@ -15,7 +15,8 @@ autotools-dev, autoconf, automake, - xutils-dev + xutils-dev, + dh-autoreconf Standards-Version: 3.9.2 Homepage: http://xcb.freedesktop.org Vcs-Git: git://git.debian.org/pkg-xorg/lib/xcb-util.git diff -Nru xcb-util-0.3.8/debian/rules xcb-util-0.3.8/debian/rules --- xcb-util-0.3.8/debian/rules 2012-02-08 17:40:41.0 -0200 +++ xcb-util-0.3.8/debian/rules 2014-08-21 15:05:41.0 -0300 @@ -4,6 +4,7 @@ include /usr/share/cdbs/1/rules/debhelper.mk include /usr/share/cdbs/1/class/autotools.mk +include /usr/share/cdbs/1/rules/autoreconf.mk DEB_DH_MAKESHLIBS_ARGS=-V