すごくひさびさにブログを書いています。 ここ数年はSNSへ細かく投稿してたのですがじょじょにブログへ戻していこうと思っています。
さてさて、4/25にUbuntu 24.04LTSがリリースされたので早速アップグレードしました。 Ubuntu 22.04LTSからのアップグレードを行ったのですがストレートに24.04LTSにアップグレードはできません。 これは7月にリリースされる24.04.1LTSで対応されるのだろうと思います。
そこで、まずは23.10にアップグレードしてから24.04LTSへアップグレードを行います。
/etc/update-manager/release-upgrades
のPrompt=lts
をnormal
に変更して23.10に、lts
に戻して24.04LTSへアップグレードします。
特に問題なくアップグレードが行えます。
24.04LTSにすると問題が発生するかなと思ったら、XSIMでつぎのようなエラーが発生しました。
$ /opt/Xilinx/Vivado/2022.2/lib/lnx64.o/../../tps/lnx64/gcc-6.2.0/bin/g++ -Wa,-W -O -fPIC -m64 -shared -o "xsim.dir/work/xsc/dpi.so" "xsim.dir/work/xsc/sample.lnx64.o" -L/opt/Xilinx/Vivado/2022.2/lib/lnx64.o -lrdi_simulator_kernel -lrdi_xsim_systemc -std=c++11 -L/opt/Xilinx/Vivado/2022.2/lib/lnx64.o/Default -B/opt/Xilinx/Vivado/2022.2/lib/lnx64.o/../../tps/lnx64/gcc-6.2.0/bin/../../binutils-2.37/bin/
/opt/Xilinx/Vivado/2022.2/lib/lnx64.o/../../tps/lnx64/gcc-6.2.0/bin/../../binutils-2.37/bin/ld: /lib/x86_64-linux-gnu/libm.so.6: unknown type [0x13] section `.relr.dyn'
/opt/Xilinx/Vivado/2022.2/lib/lnx64.o/../../tps/lnx64/gcc-6.2.0/bin/../../binutils-2.37/bin/ld: skipping incompatible /lib/x86_64-linux-gnu/libm.so.6 when searching for /lib/x86_64-linux-gnu/libm.so.6
/opt/Xilinx/Vivado/2022.2/lib/lnx64.o/../../tps/lnx64/gcc-6.2.0/bin/../../binutils-2.37/bin/ld: cannot find /lib/x86_64-linux-gnu/libm.so.6
/opt/Xilinx/Vivado/2022.2/lib/lnx64.o/../../tps/lnx64/gcc-6.2.0/bin/../../binutils-2.37/bin/ld: /lib/x86_64-linux-gnu/libm.so.6: unknown type [0x13] section `.relr.dyn'
/opt/Xilinx/Vivado/2022.2/lib/lnx64.o/../../tps/lnx64/gcc-6.2.0/bin/../../binutils-2.37/bin/ld: skipping incompatible /lib/x86_64-linux-gnu/libm.so.6 when searching for /lib/x86_64-linux-gnu/libm.so.6
/opt/Xilinx/Vivado/2022.2/lib/lnx64.o/../../tps/lnx64/gcc-6.2.0/bin/../../binutils-2.37/bin/ld: /lib/x86_64-linux-gnu/libmvec.so.1: unknown type [0x13] section `.relr.dyn'
/opt/Xilinx/Vivado/2022.2/lib/lnx64.o/../../tps/lnx64/gcc-6.2.0/bin/../../binutils-2.37/bin/ld: skipping incompatible /lib/x86_64-linux-gnu/libmvec.so.1 when searching for /lib/x86_64-linux-gnu/libmvec.so.1
/opt/Xilinx/Vivado/2022.2/lib/lnx64.o/../../tps/lnx64/gcc-6.2.0/bin/../../binutils-2.37/bin/ld: cannot find /lib/x86_64-linux-gnu/libmvec.so.1
/opt/Xilinx/Vivado/2022.2/lib/lnx64.o/../../tps/lnx64/gcc-6.2.0/bin/../../binutils-2.37/bin/ld: /lib/x86_64-linux-gnu/libmvec.so.1: unknown type [0x13] section `.relr.dyn'
/opt/Xilinx/Vivado/2022.2/lib/lnx64.o/../../tps/lnx64/gcc-6.2.0/bin/../../binutils-2.37/bin/ld: skipping incompatible /lib/x86_64-linux-gnu/libmvec.so.1 when searching for /lib/x86_64-linux-gnu/libmvec.so.1
collect2: error: ld returned 1 exit status
Vivadoはbinutilsの2.37をかならず要求するようです。 Ubuntu 24.04LTSのbinutilsは2.42です。 そこでVivadoのbinutilsを2.42に入れ替えてしまいます。
$ wget http://ftp.gnu.org/gnu/binutils/binutils-2.42.tar.bz2
$ tar xvf binutils-2.42.tar.bz2
$ cd binutils-2.42
$ ./configure --prefix=/opt/Xilinx/Vivado/2022.2/tps/lnx64/binutils-2.42/
$ make
$ make install
$ cd /opt/Xilinx/Vivado/2022.2/tps/lnx64
$ sudo mv binutils-2.37 binutils-2.37.org
$ sudo mv binutils-2.42 binutils-2.37
または
$ cd /opt/Xilinx/Vivado/2022.2/tps/lnx64
$ sudo mv binutils-2.37 binutils-2.37.org
$ wget http://ftp.gnu.org/gnu/binutils/binutils-2.42.tar.bz2
$ tar xvf binutils-2.42.tar.bz2
$ cd binutils-2.42
$ ./configure --prefix=/opt/Xilinx/Vivado/2022.2/tps/lnx64/binutils-2.37/
$ make
$ make install
これでXSIMが正常にコンパイルできシミュレーションが実行できます。