Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Compile gcc6.4.0 using gcc8.1.1

Tags:

gcc

makefile

I tried to install gcc6.4.0 in Fedora28, while something wrong happened as following.

In file included from ../.././libgcc/unwind-dw2.c:401:0:
./md-unwind-support.h: In function ‘x86_64_fallback_frame_state’:
./md-unwind-support.h:65:47: error: dereferencing pointer to incomplete type ‘struct ucontex_t’
       sc = (struct sigcontext *) (void *) &uc_->uc_mcontext;
                                               ^~

And at the end the message is here:

make[3]: *** [../.././libgcc/shared-object.mk:14: unwind-dw2.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory '/home/rx/program/gcc-6.4.0/x86_64-pc-linux-gnu/libgcc'
make[2]: *** [Makefile:17378: all-stage1-target-libgcc] Error 2
make[2]: Leaving directory '/home/rx/program/gcc-6.4.0'
make[1]: *** [Makefile:23677: stage1-bubble] Error 2
make[1]: Leaving directory '/home/rx/program/gcc-6.4.0'
make: *** [Makefile:914: all] Error 2

I have try the previous solution, but it still failed.

Am I missing something? Thank you!

like image 570
Jianhao Avatar asked Dec 22 '25 03:12

Jianhao


1 Answers

This is due to a change in recent versions of glibc which required changes to the GCC sources. GCC 6.4.0 was released before those changes happened, so you'll need to patch the code yourself. The fix needed is https://gcc.gnu.org/viewcvs/gcc/trunk/libgcc/config/i386/linux-unwind.h?r1=249731&r2=249730&pathrev=249731

I have try the previous solution, but it still failed.

That's not possible. Are you sure you made both changes suggested there, not just on line 61?

like image 115
Jonathan Wakely Avatar answered Dec 23 '25 22:12

Jonathan Wakely