Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 08 Mar 2015 09:53:07 -0700
From:      Nathan Whitehorn <nwhitehorn@freebsd.org>
To:        Mark Millard <markmi@dsl-only.net>, freebsd-ports@freebsd.org, FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>
Subject:   Re: powerpc64 context, sysutils/polkit fails to build: broken pipe during /usr/local/lib/gobject-introspection/giscanner/sourcescanner.py
Message-ID:  <54FC7E73.4040205@freebsd.org>
In-Reply-To: <C27BB0D9-665D-4D4E-96A4-096A82D7EA54@dsl-only.net>
References:  <C27BB0D9-665D-4D4E-96A4-096A82D7EA54@dsl-only.net>

next in thread | previous in thread | raw e-mail | index | archive | help
This builds without issue for me, both on a G5 system and on a POWER8.
-Nathan

On 03/07/15 22:16, Mark Millard wrote:
> powerpc64 context (more details are listed later):
>
> $ freebsd-version -ku; uname -a
> 10.1-STABLE
> 10.1-STABLE
> FreeBSD FBSDG5S0 10.1-STABLE FreeBSD 10.1-STABLE #0 r279507M: Fri Mar  6 23:08:59 PST 2015     root@FBSDG5S0:/usr/obj/usr/src/sys/GENERIC64vtsc  powerpc
>
> Ports Revision 380683 via svnlite update. I've been using portmaster.
>
>
> The problem (which I've not figured out yet)...
>
> x11/xorg, x11-drivers/xf86-video-ati-ums, x11-drivers/xf86-video-scfb, and x11-wm/xfce4 are all blocked from building by sysutils/polkit failing to build because of a broken pipe with a subprocess...
>
> ...
> gmake  all-am
> gmake[6]: Entering directory '/usr/obj/portswork/usr/ports/sysutils/polkit/work/polkit-0.105/src/polkit'
>    CC     libpolkit_gobject_1_la-polkitenumtypes.lo
>    CC     libpolkit_gobject_1_la-polkitactiondescription.lo
>    CC     libpolkit_gobject_1_la-polkitauthorityfeatures.lo
>    CC     libpolkit_gobject_1_la-polkitdetails.lo
>    CC     libpolkit_gobject_1_la-polkitauthority.lo
>    CC     libpolkit_gobject_1_la-polkiterror.lo
>    CC     libpolkit_gobject_1_la-polkitsubject.lo
>    CC     libpolkit_gobject_1_la-polkitunixprocess.lo
>    CC     libpolkit_gobject_1_la-polkitsystembusname.lo
>    CC     libpolkit_gobject_1_la-polkitidentity.lo
>    CC     libpolkit_gobject_1_la-polkitunixuser.lo
>    CC     libpolkit_gobject_1_la-polkitunixgroup.lo
>    CC     libpolkit_gobject_1_la-polkitunixnetgroup.lo
>    CC     libpolkit_gobject_1_la-polkitauthorizationresult.lo
>    CC     libpolkit_gobject_1_la-polkitcheckauthorizationflags.lo
>    CC     libpolkit_gobject_1_la-polkitimplicitauthorization.lo
>    CC     libpolkit_gobject_1_la-polkittemporaryauthorization.lo
>    CC     libpolkit_gobject_1_la-polkitpermission.lo
>    CC     libpolkit_gobject_1_la-polkitunixsession.lo
>    CCLD   libpolkit-gobject-1.la
>    GISCAN   Polkit-1.0.gir
> Traceback (most recent call last):
>    File "/usr/local/bin/g-ir-scanner", line 55, in <module>
>      sys.exit(scanner_main(sys.argv))
>    File "/usr/local/lib/gobject-introspection/giscanner/scannermain.py", line 517, in scanner_main
>      ss = create_source_scanner(options, args)
>    File "/usr/local/lib/gobject-introspection/giscanner/scannermain.py", line 430, in create_source_scanner
>      ss.parse_files(filenames)
>    File "/usr/local/lib/gobject-introspection/giscanner/sourcescanner.py", line 256, in parse_files
>      self._parse(headers)
>    File "/usr/local/lib/gobject-introspection/giscanner/sourcescanner.py", line 302, in _parse
>      proc.stdin.write('#ifndef %s\n' % (define, ))
> IOError: [Errno 32] Broken pipe
> /usr/local/share/gobject-introspection-1.0/Makefile.introspection:153: recipe for target 'Polkit-1.0.gir' failed
> gmake[6]: *** [Polkit-1.0.gir] Error 1
> gmake[6]: Leaving directory '/usr/obj/portswork/usr/ports/sysutils/polkit/work/polkit-0.105/src/polkit'
> Makefile:444: recipe for target 'all' failed
> gmake[5]: *** [all] Error 2
> gmake[5]: Leaving directory '/usr/obj/portswork/usr/ports/sysutils/polkit/work/polkit-0.105/src/polkit'
> Makefile:326: recipe for target 'all-recursive' failed
> gmake[4]: *** [all-recursive] Error 1
> gmake[4]: Leaving directory '/usr/obj/portswork/usr/ports/sysutils/polkit/work/polkit-0.105/src'
> Makefile:374: recipe for target 'all-recursive' failed
> gmake[3]: *** [all-recursive] Error 1
> gmake[3]: Leaving directory '/usr/obj/portswork/usr/ports/sysutils/polkit/work/polkit-0.105'
> Makefile:305: recipe for target 'all' failed
> gmake[2]: *** [all] Error 2
> gmake[2]: Leaving directory '/usr/obj/portswork/usr/ports/sysutils/polkit/work/polkit-0.105'
> *** Error code 1
>
> Stop.
> make[1]: stopped in /usr/ports/sysutils/polkit
> *** Error code 1
>
> Stop.
> make: stopped in /usr/ports/sysutils/polkit
>
> ===>>> make build failed for sysutils/polkit
> ===>>> Aborting update
>
>
> ===>>> You can restart from the point of failure with this command line:
>         portmaster <flags> sysutils/polkit
>
> The relevant /usr/local/lib/gobject-introspection/giscanner/sourcescanner.py code being...
>
>      def _parse(self, filenames):
>          if not filenames:
>              return
>   
>          defines = ['__GI_SCANNER__']
>          undefs = []
>          cpp_args = os.environ.get('CC', 'cc').split()  # support CC="ccache gcc"
>          if 'cl' in cpp_args:
>              # The Microsoft compiler/preprocessor (cl) does not accept
>              # source input from stdin (the '-' flag), so we need
>              # some help from gcc from MinGW/Cygwin or so.
>              # Note that the generated dumper program is
>              # still built and linked by Visual C++.
>              cpp_args = ['gcc']
>          cpp_args += os.environ.get('CPPFLAGS', '').split()
>          cpp_args += os.environ.get('CFLAGS', '').split()
>          cpp_args += ['-E', '-C', '-I.', '-']
>          cpp_args += self._cpp_options
>
>          proc = subprocess.Popen(cpp_args,
>                                  stdin=subprocess.PIPE,
>                                  stdout=subprocess.PIPE)
>
>          for define in defines:
>              proc.stdin.write('#ifndef %s\n' % (define, ))
>              proc.stdin.write('# define %s\n' % (define, ))
>              proc.stdin.write('#endif\n')
> ...
>
> For my context the overall environment has (but ports might force other ports as alternatives to):
>
> # more /etc/make.conf
> #CPP=clang-cpp
> #CC=clang
> #CXX=clang++
> WRKDIRPREFIX=/usr/obj/portswork
> WITH_DEBUG=
> MALLOC_PRODUCTION=
>
> # more /etc/src.conf
> #CPP=clang-cpp
> #CC=clang
> #CXX=clang++
> #CFLAGS+=-DELF_VERBOSE
> #WITH_DEBUG_FILES=
> #WITHOUT_CLANG
>
> # which cc
> /usr/bin/cc
>
> # cc --version
> cc (GCC) 4.2.1 20070831 patched [FreeBSD]
> Copyright (C) 2007 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
>
> # which clang
> /usr/bin/clang
>
> # clang --version
> FreeBSD clang version 3.4.1 (tags/RELEASE_34/dot1-final 208032) 20140512
> Target: powerpc64-unknown-freebsd10.1
> Thread model: posix
>
>
>
>
>
> Other context details:
>
> $ cd /usr/ports
> $ svnlite info
> Path: .
> Working Copy Root Path: /usr/ports
> URL: https://svn0.us-west.freebsd.org/ports/head
> Relative URL: ^/head
> Repository Root: https://svn0.us-west.freebsd.org/ports
> Repository UUID: 35697150-7ecd-e111-bb59-0022644237b5
> Revision: 380683
> Node Kind: directory
> Schedule: normal
> Last Changed Author: demon
> Last Changed Rev: 380683
> Last Changed Date: 2015-03-07 03:31:11 -0800 (Sat, 07 Mar 2015)
>
> $ svnlite st --no-ignore
> ?       .snap
> I       distfiles
> M       graphics/libGL/bsd.mesalib.mk
> I       packages
> ?       restoresymtable
>
> $ svnlite diff graphics/libGL/bsd.mesalib.mk
> Index: graphics/libGL/bsd.mesalib.mk
> ===================================================================
> --- graphics/libGL/bsd.mesalib.mk	(revision 380683)
> +++ graphics/libGL/bsd.mesalib.mk	(working copy)
> @@ -136,6 +136,10 @@
>   CONFIGURE_ARGS+=--enable-vdpau
>   .endif
>   
> +.if ${ARCH} == powerpc64
> +CFLAGS+=	-mminimal-toc
> +.endif
> +
>   post-patch:
>   	@${REINPLACE_CMD} -e 's|-ffast-math|${FAST_MATH}|' -e 's|x86_64|amd64|' \
>   		${WRKSRC}/configure
>
> $ cd /usr/src
> $ svnlite info
> Path: .
> Working Copy Root Path: /usr/src
> URL: https://svn0.us-west.freebsd.org/base/stable/10
> Relative URL: ^/stable/10
> Repository Root: https://svn0.us-west.freebsd.org/base
> Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
> Revision: 279507
> Node Kind: directory
> Schedule: normal
> Last Changed Author: ngie
> Last Changed Rev: 279507
> Last Changed Date: 2015-03-01 14:12:24 -0800 (Sun, 01 Mar 2015)
>
> $ svnlite st --no-ignore
> ?       .snap
> ?       restoresymtable
> M       sys/ddb/db_main.c
> M       sys/ddb/db_script.c
> I       sys/powerpc/conf/GENERIC64vtsc
> I       sys/powerpc/conf/GENERICvtsc
> M       sys/powerpc/ofw/ofw_machdep.c
> M       sys/powerpc/ofw/ofwcall64.S
> M       sys/powerpc/powerpc/dump_machdep.c
>
> sys/powerpc/ofw/ofw_machdep.c has a PowerMac G5 specific change to avoid intermittent boot problems.
>
> sys/ddb/... and sys/powerpc/ofw/ofwcall64.S are just to help me get evidence if I do end up with another early-boot failure. DDB and GDB are listed in sys/powerpc/conf/GENERIC64vtsc for the same reason.
>
> sys/powerpc/powerpc/dump_machdep.c is from me forcing the DMA transfer size for dumps to be small enough not to be rejected as too large of a DMA request size.
>
> sys/powerpc/conf/GENERIC64vtsc turns off ps3 in order to turn on both vt and sc. It includes the standard GENERIC64.
>
>
>
> ===
> Mark Millard
> markmi at dsl-only.net
>
> _______________________________________________
> freebsd-ppc@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-ppc
> To unsubscribe, send any mail to "freebsd-ppc-unsubscribe@freebsd.org"
>




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?54FC7E73.4040205>