Ubuntu22.04 compiles the linux kernel with multiple definition of `yylloc' problem solving
Recently upgraded to Ubuntu22.04, there will be multiple definition of `yylloc' error when compiling the linux kernel
/usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x10): multiple definition of `yylloc'; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first defined herecollect2: error: ld returned 1 exit statusmake-4.1[3]: *** [scripts/dtc/dtc] Error 1scripts/Makefile.host:99: recipe for target 'scripts/dtc/dtc' failedscripts/Makefile.build:544: recipe for target 'scripts/dtc' failedmake-4.1[2]: *** [scripts/dtc] Error 2
When I checked the solution on the Internet, I found that the error occurred because of the use of gcc 10.0 and above, so I checked the gcc version, the gcc version of Ubuntu22.04 is 11.2.0, so I plan to use gcc-9 on ubuntu22.04 Version
solution
Download gcc-9 and g++-9
sudo apt install gcc-9 g++-9
Switch the gcc g++ version to 9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 100sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 100
Check the gcc version again, you can see that the version has become 9.4.0
At this time, the problem of multiple definition of `yylloc' will not appear when compiling the linux kernel again.
0 Comments