Opened 3 years ago

Closed 3 years ago

Last modified 2 years ago

#4433 closed enhancement (wontfix)

Add ISL to book

Reported by: thomas Owned by: lfs-book
Priority: normal Milestone: 9.0
Component: Book Version: SVN
Severity: normal Keywords:
Cc:

Description

This is to follow a thread started by Xi Ruoyao:

---

Now GCC relys on ISL (https://repo.or.cz/isl.git) to enable graphite optimization, instead of Cloog-PPL and PPL.

We should update this in LFS Appendix C.

---

Better, just add it to the book in the 8.5 cycle and remove the note. It's a tiny addition.

---

Another issue: ISL is also an optional dependency of Binutils (to enable parallel linking of ld.gold). And, ISL must be built after GMP. So if we would do that the build sequence should be changed to:

Bc -> GMP -> ISL -> Binutils -> MPFR -> MPC -> Shadow -> GCC

I tried this once but it seems some GMP tests were skipped. So I rebuilt GMP after Binutils:

Bc -> GMP (some tests skipped) -> ISL -> Binutils -> GMP (final) -> MPFR -> ...

Change History (12)

comment:1 by Xi Ruoyao, 3 years ago

It seems my memory has some flaw. Binutils does not need ISL.

Bc -> Binutils -> GMP -> MPFR -> MPC -> ISL -> Shadow -> GCC should be fine.

comment:2 by Bruce Dubbs, 3 years ago

This is not clear to me. What does ISL have to do with shadow? From what I understand any time prior to gcc would be OK.

What are the perrequsites for ISL?

comment:3 by thomas, 3 years ago

MesaLib builds its own isl library. Maybe it could use system installed isl if it goes into book.

I just saw it flying by in the logfiles. (unfortunatly, i have no time right now to have a deeper look. Just add this comment to remember it.)

in reply to:  3 comment:4 by Xi Ruoyao, 3 years ago

Replying to thomas:

MesaLib builds its own isl library. Maybe it could use system installed isl if it goes into book.

Negative. "ISL" stands for "Intel Surface Layout" in Mesa.

in reply to:  2 comment:5 by Xi Ruoyao, 3 years ago

Replying to bdubbs:

This is not clear to me. What does ISL have to do with shadow? From what I understand any time prior to gcc would be OK.

What are the perrequsites for ISL?

ISL is an optional dependency of GCC. DJ suggested that we could add ISL into the book because it would be only a tiny addition.

comment:6 by Bruce Dubbs, 3 years ago

I understand, but was wondering what packages were needed to build ISL.

BTW, that 'tiny' addition needs that about seven pages need to be modified as well as one new one added. Lets see:

general.ent
packages.ent
chapter01/changelog
chapter01/whatnew
chapter03/packages.xml
chapter06/chapter06.xml
chapter06/isl.xml (new)
appendices/dependencies.xml

And then the currency script has to be updated.

Adding any page is non-trivial.

in reply to:  6 comment:7 by Xi Ruoyao, 3 years ago

Replying to bdubbs:

I understand, but was wondering what packages were needed to build ISL.

It must be built after GMP.

BTW, that 'tiny' addition needs that about seven pages need to be modified as well as one new one added. Lets see:

general.ent
packages.ent
chapter01/changelog
chapter01/whatnew
chapter03/packages.xml
chapter06/chapter06.xml
chapter06/isl.xml (new)
appendices/dependencies.xml

Then we can just close this as WONTFIX. No LFS/BLFS packages take advantage of Graphite loop optimization, I think...

Last edited 3 years ago by Xi Ruoyao (previous) (diff)

comment:8 by Bruce Dubbs, 3 years ago

URL=http://isl.gforge.inria.fr/isl-0.20.tar.gz
SIZE=2.0 MB
MD5SUM=895cbb81d8552aa2d77108988035bdc4

Needs: gmp; Uses python2 (not sure if py3 is OK or not)

./configure --prefix=/usr --disable-static
make
make check (0.3 SBU; 1 extra MB)
make install

BUILD SIZE= 23 MB (2.7 MB installed)
SBU=0.4

Library:  libisl.so.19.1.0 (and libisl.so.19.1.0-gdb.py)
New Directory: ./include/isl

Need to move libisl.so.19.1.0-gdb.py from /usr/lib to 
  /usr/share/gdb/auto-load/usr/lib/

In LFS, we would probably need
  mkdir -p  /usr/share/gdb/auto-load/usr/lib/
since isl would be before gcc. (gcc installs libstdc++.so.6.0.25-gdb.py there)

comment:9 by thomas, 3 years ago

The multilib version of LFS adds ISL. You can use parts of that patch: https://io.ax.lt/LFS/lfs/patch-multilib-SVN.diff, rendered book at https://io.ax.lt/LFS/lfs/book/ . We can re-check it - maybe its even there not really required.

Btw, I do not see that adding a page is that a huge effort - it has been done several times for python, openssl and such.

Last edited 3 years ago by thomas (previous) (diff)

in reply to:  8 comment:10 by Xi Ruoyao, 3 years ago

Replying to bdubbs:

Needs: gmp; Uses python2 (not sure if py3 is OK or not)

It does not use python2. The Python interface of ISL is written in C++ and self contained (does not need /usr/include/python*). To use it we need to manually install isl.py in isl-0.20/interface.

comment:11 by Bruce Dubbs, 3 years ago

Resolution: wontfix
Status: newclosed

I'm going to mark this as wontfix. We do not have anything in LFS or BLFS that uses it. I did add it to the gcc page in BLFS as an optional dependency.

comment:12 by Bruce Dubbs, 2 years ago

Milestone: 8.59.0

Milestone renamed

Note: See TracTickets for help on using tickets.