#53662 closed defect (fixed)
gcc48: incompatible with isl 0.18
Reported by: | Alex-Vidal (Alex Vidal) | Owned by: | MarcusCalhoun-Lopez (Marcus Calhoun-Lopez) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | ryandesign (Ryan Carsten Schmidt), mojca (Mojca Miklavec), jeremyhu (Jeremy Huddleston Sequoia), takeshi@…, gnw3, macdeport, Schamschula (Marius Schamschula), ballapete (Peter "Pete" Dyballa) | |
Port: | gcc48 isl upc dragonegg-3.3-gcc-4.8 dragonegg-3.4-gcc-4.8 |
Description (last modified by mojca (Mojca Miklavec))
An update of isl broke gcc48 on all OS versions (see #53617).
Here's one part of the error from the 10.12 buildbot:
In file included from /path/to/gcc48/work/gcc-4.8.5/gcc/graphite-optimize-isl.c:48: /path/to/gcc48/work/gcc-4.8.5/gcc/graphite-poly.h:397:43: error: unknown type name 'isl_constraint' extern void print_isl_constraint (FILE *, isl_constraint *); ^ /path/to/gcc48/work/gcc-4.8.5/gcc/graphite-poly.h:401:35: error: unknown type name 'isl_constraint' extern void debug_isl_constraint (isl_constraint *); ^ /path/to/gcc48/work/gcc-4.8.5/gcc/graphite-optimize-isl.c:56:24: error: use of undeclared identifier 'isl_union_set_empty'; did you mean 'isl_union_map_empty'? isl_union_set *res = isl_union_set_empty (space); ^~~~~~~~~~~~~~~~~~~ isl_union_map_empty /opt/local/include/isl/union_map.h:27:27: note: 'isl_union_map_empty' declared here __isl_give isl_union_map *isl_union_map_empty(__isl_take isl_space *dim); ^ /path/to/gcc48/work/gcc-4.8.5/gcc/graphite-optimize-isl.c:56:18: error: cannot initialize a variable of type 'isl_union_set *' with an rvalue of type 'isl_union_map *' isl_union_set *res = isl_union_set_empty (space); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ /path/to/gcc48/work/gcc-4.8.5/gcc/graphite-optimize-isl.c:144:7: error: unknown type name 'isl_constraint' isl_constraint *c; ^ /path/to/gcc48/work/gcc-4.8.5/gcc/graphite-optimize-isl.c:147:11: error: use of undeclared identifier 'isl_equality_alloc' c = isl_equality_alloc(isl_local_space_copy(LocalSpace)); ^ /path/to/gcc48/work/gcc-4.8.5/gcc/graphite-optimize-isl.c:153:11: error: use of undeclared identifier 'isl_equality_alloc' c = isl_equality_alloc(isl_local_space_copy(LocalSpace)); ^ /path/to/gcc48/work/gcc-4.8.5/gcc/graphite-optimize-isl.c:159:11: error: use of undeclared identifier 'isl_inequality_alloc' c = isl_inequality_alloc(isl_local_space_copy(LocalSpace)); ^ /path/to/gcc48/work/gcc-4.8.5/gcc/graphite-optimize-isl.c:165:11: error: use of undeclared identifier 'isl_inequality_alloc' c = isl_inequality_alloc(isl_local_space_copy(LocalSpace)); ^ /path/to/gcc48/work/gcc-4.8.5/gcc/graphite-optimize-isl.c:268:3: error: unknown type name 'isl_constraint' isl_constraint *c; ^ /path/to/gcc48/work/gcc-4.8.5/gcc/graphite-optimize-isl.c:287:11: error: use of undeclared identifier 'isl_equality_alloc' c = isl_equality_alloc(isl_local_space_copy(LocalSpace)); ^ /path/to/gcc48/work/gcc-4.8.5/gcc/graphite-optimize-isl.c:311:7: error: use of undeclared identifier 'isl_inequality_alloc' c = isl_inequality_alloc(isl_local_space_copy(LocalSpace)); ^ /path/to/gcc48/work/gcc-4.8.5/gcc/graphite-optimize-isl.c:317:7: error: use of undeclared identifier 'isl_inequality_alloc' c = isl_inequality_alloc(LocalSpace); ^ /path/to/gcc48/work/gcc-4.8.5/gcc/graphite-optimize-isl.c:432:7: error: use of undeclared identifier 'isl_union_set_from_set'; did you mean 'isl_union_map_from_map'? isl_union_set_from_set(domain)); ^~~~~~~~~~~~~~~~~~~~~~ isl_union_map_from_map
Attachments (2)
Change History (20)
Changed 8 years ago by Alex-Vidal (Alex Vidal)
Changed 8 years ago by ruipacheco (Rui Pacheco)
Attachment: | main.2.log added |
---|
comment:1 Changed 8 years ago by ruipacheco (Rui Pacheco)
Have a similar problem, different log output. Added main.2.log to ticket.
comment:2 Changed 8 years ago by mojca (Mojca Miklavec)
Cc: | ryandesign mojca added |
---|---|
Description: | modified (diff) |
Keywords: | gcc48 removed |
Owner: | set to MarcusCalhoun-Lopez |
Port: | isl added |
Status: | new → assigned |
Summary: | gcc48: Failed to build, command execution failed → gcc48: incompatible with isl 0.18 |
Version: | 2.4.1 |
comment:3 Changed 8 years ago by mojca (Mojca Miklavec)
Description: | modified (diff) |
---|
comment:4 Changed 8 years ago by mojca (Mojca Miklavec)
Cc: | jeremyhu takeshi@… added |
---|---|
Port: | upc dragonegg-3.3-gcc-4.8 dragonegg-3.4-gcc-4.8 added |
upc is also affected in exactly the same way.
Dragonegg (using gcc48) cannot be built either.
We might have to provide an older version of isl (subport of isl) at a different location
comment:5 Changed 8 years ago by gnw3
Cc: | gnw3 added |
---|
comment:6 Changed 8 years ago by macdeport
Cc: | macdeport added |
---|
comment:7 Changed 8 years ago by Schamschula (Marius Schamschula)
Cc: | Schamschula added |
---|
comment:8 Changed 8 years ago by kencu (Ken)
Will gcc use an isl source directory in the build directory if one exists? It seems to do that with a number of other components.
comment:9 Changed 8 years ago by gnw3
According to Installing GCC (no version specified):
isl Library version 0.15 or later. Necessary to build GCC with the Graphite loop optimizations. It can be downloaded from ftp://gcc.gnu.org/pub/gcc/infrastructure/. If an isl source distribution is found in a subdirectory of your GCC sources named isl, it will be built together with GCC. Alternatively, the --with-isl configure option should be used if isl is not installed in your default library search path.
Not entirely correct, as GCC 7 needs isl 1.0.18.
According to Installing GCC wiki:
Alternatively, after extracting the GCC source archive, simply run the ./contrib/download_prerequisites script in the GCC source directory. That will download the support libraries and create symlinks, causing them to be built automatically as part of the GCC build process. Set GRAPHITE_LOOP_OPT=no in the script if you want to build GCC without ISL, which is only needed for the optional Graphite loop optimizations.
I should know, but can't remember for sure, whether GGC puts libraries install from the GCC source tree in a private location.
comment:10 Changed 8 years ago by kencu (Ken)
So maybe that is worth a try? There are those on this list who have been building gcc for a decade or more.
comment:11 Changed 8 years ago by ballapete (Peter "Pete" Dyballa)
Cc: | ballapete added |
---|
comment:12 Changed 8 years ago by kencu (Ken)
I tried installing a separate copy of isl 0.14
in ${prefix}/libexec/isl14 and then configuring gcc48 to use that isl version in the configuration options. Sadly, it finds the include files for isl 0.18
first, and so it still errors out in the build.
Will have to somehow either find a way to rearrange the link to the include files for isl 0.14
ahead of the standard include files in the build command, or find some other way to hide isl 0.18
during the build.
Edit - looks like the "prepend" option was the easy way to fix this.
comment:13 Changed 8 years ago by kencu (Ken)
gcc48 and other gcc versions will build without isl
, which is needed only for Graphite loop optimizations. This can be achieved by the deleting the with system isl
configuration option. I have no idea if Graphite loop optimizations are worthwhile, but nice to have them, anyway.
A copy of isl 0.14 in the gcc48 source directory, with the folder named isl
, and a copy of cloog similarly, will allow a local build-only version. That might be useful someday.
comment:14 Changed 8 years ago by kencu (Ken)
A possible fix for gcc48 was in https://github.com/macports/macports-ports/pull/375. Deleted that now.
comment:15 Changed 8 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
comment:16 Changed 8 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
comment:17 Changed 8 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
comment:18 Changed 8 years ago by mojca (Mojca Miklavec)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Log