Bug 218131 - [patch] x11-toolkits/pango needs to specify USES=c++11-lang feature
Summary: [patch] x11-toolkits/pango needs to specify USES=c++11-lang feature
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: powerpc Any
: --- Affects Only Me
Assignee: Mark Linimon
URL:
Keywords: patch
: 233673 (view as bug list)
Depends on:
Blocks:
 
Reported: 2017-03-26 00:43 UTC by Hiroo Ono
Modified: 2018-12-06 14:01 UTC (History)
6 users (show)

See Also:
bugzilla: maintainer-feedback? (gnome)


Attachments
add c++11-lang featue to USES keyword. (357 bytes, patch)
2017-03-26 00:43 UTC, Hiroo Ono
no flags Details | Diff
build failure log from poudriere on powerpc64 (170.52 KB, text/plain)
2017-03-26 00:44 UTC, Hiroo Ono
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Hiroo Ono 2017-03-26 00:43:33 UTC
Created attachment 181199 [details]
add c++11-lang featue to USES keyword.

On powerpc64, the default compiler is still gcc 4.2.1, and it produces following error:

/usr/local/lib/libicui18n.so.58: undefined reference to `__cxa_throw_bad_array_new_length@CXXABI_1.3.8'

adding USES=c++11-lang feature, gcc49 is used and it succeed in building the port.
Comment 1 Hiroo Ono 2017-03-26 00:44:29 UTC
Created attachment 181200 [details]
build failure log from poudriere on powerpc64
Comment 2 Tobias Kortkamp freebsd_committer 2018-11-16 09:06:29 UTC
This seems not correct to me and I was able to build Pango on powerpc
before without this.

CC linimon@ and Piotr Kubaj who have access to powerpc64 hardware
and can hopefully confirm/reject the patch
Comment 3 Mark Millard 2018-11-16 14:54:41 UTC
(In reply to Tobias Kortkamp from comment #2)

The log that was attached also shows syntax error reports, such as:

/usr/include/dirent.h:109: syntax error, unexpected '^' in '     int (^)(const struct dirent *),' at '^'
/usr/include/dirent.h:109: syntax error, unexpected ')', expecting identifier or '(' in '     int (^)(const struct dirent *),' at ')'
/usr/include/dirent.h:110: syntax error, unexpected ',', expecting identifier or '(' in '     int (^)(const struct dirent **, const struct dirent **));' at ','
/usr/include/dirent.h:110: syntax error, unexpected ')', expecting identifier or '(' in '     int (^)(const struct dirent **, const struct dirent **));' at ')'

and:

/usr/include/dirent.h:109: syntax error, unexpected '^' in '     int (^)(const struct dirent *),' at '^'
/usr/include/dirent.h:109: syntax error, unexpected ')', expecting identifier or '(' in '     int (^)(const struct dirent *),' at ')'
/usr/include/dirent.h:110: syntax error, unexpected ',', expecting identifier or '(' in '     int (^)(const struct dirent **, const struct dirent **));' at ','
/usr/include/dirent.h:110: syntax error, unexpected ')', expecting identifier or '(' in '     int (^)(const struct dirent **, const struct dirent **));' at ')'
/usr/include/stdlib.h:261: syntax error, unexpected '^' in 'int atexit_b(void (^ )(void));' at '^'
/usr/include/stdlib.h:263: syntax error, unexpected '^' in '     size_t, int (^ )(const void *, const void *));' at '^'
/usr/include/stdlib.h:263: syntax error, unexpected ',', expecting identifier or '(' in '     size_t, int (^ )(const void *, const void *));' at ','
/usr/include/stdlib.h:263: syntax error, unexpected ')', expecting identifier or '(' in '     size_t, int (^ )(const void *, const void *));' at ')'
/usr/include/stdlib.h:291: syntax error, unexpected '^' in '     int (^ )(const void *, const void *));' at '^'
/usr/include/stdlib.h:291: syntax error, unexpected ',', expecting identifier or '(' in '     int (^ )(const void *, const void *));' at ','
/usr/include/stdlib.h:291: syntax error, unexpected ')', expecting identifier or '(' in '     int (^ )(const void *, const void *));' at ')'
/usr/include/stdlib.h:293: syntax error, unexpected '^' in '     int (^ )(const void *, const void *));' at '^'
/usr/include/stdlib.h:293: syntax error, unexpected ',', expecting identifier or '(' in '     int (^ )(const void *, const void *));' at ','
/usr/include/stdlib.h:293: syntax error, unexpected ')', expecting identifier or '(' in '     int (^ )(const void *, const void *));' at ')'
/usr/include/stdlib.h:298: syntax error, unexpected '^' in 'int mergesort_b(void *, size_t, size_t, int (^)(const void *, const void *));' at '^'
/usr/include/stdlib.h:298: syntax error, unexpected ',', expecting identifier or '(' in 'int mergesort_b(void *, size_t, size_t, int (^)(const void *, const void *));' at ','
/usr/include/stdlib.h:298: syntax error, unexpected ')', expecting identifier or '(' in 'int mergesort_b(void *, size_t, size_t, int (^)(const void *, const void *));' at ')'

They did not seem to stop the build.

This seems odd but I'm not familiar with the context.
Comment 4 Jan Beich freebsd_committer 2018-11-17 00:16:56 UTC
Comment on attachment 181200 [details]
build failure log from poudriere on powerpc64

> `-- Installing glib-2.46.2_4...
> |   `-- Installing icu-58.2,1...
> |   | `-- Installing gcc-4.9.4...

COLLATION_FIX was a *non-default* option, gone after ports r483807
Comment 5 Ting-Wei Lan 2018-11-17 06:49:11 UTC
(In reply to Mark Millard from comment #3)
These syntax error messages come from gobject-introspection, or more specifically, g-ir-scanner. It has no preprocessor and uses an incomplete C parser to scan C source and header files. As long as the problem doesn't happen in the library itself, it is usually safe to ignore them. However, it is still better to have this issue fixed upstream if someone has time to debug it.
Comment 6 Piotr Kubaj 2018-12-01 11:55:50 UTC
*** Bug 233673 has been marked as a duplicate of this bug. ***
Comment 7 Piotr Kubaj 2018-12-01 11:56:35 UTC
This patch is ok, it fixes build on powerpc64.
Comment 8 commit-hook freebsd_committer 2018-12-06 14:01:25 UTC
A commit references this bug:

Author: linimon
Date: Thu Dec  6 14:01:15 UTC 2018
New revision: 486758
URL: https://svnweb.freebsd.org/changeset/ports/486758

Log:
  To fix undefined reference to `__cxa_throw_bad_array_new_length@CXXABI_1.3.8',
  add compiler:c11 to USES.

  PR:		218131
  Submitted by:	Hiroo Ono <hiroo.ono plus freebsd at gmail dot com>
  Approved by:	portmgr (tier-2 blanket)

Changes:
  head/x11-toolkits/pango/Makefile