#Gcc staged install help

6 messages · Page 1 of 1 (latest)

gloomy swallow
#

Trying to compile gcc from scratch and do a staged install using make install DESTDIR though this funny little problem appears

#
install
 /bin/../lib/gcc/x86_64-pc-linux-gnu/13.2.0/
programs
 =/bin/../libexec/gcc/x86_64-pc-linux-gnu/13.2.0/
/bin/../libexec/gcc/
/bin/../lib/gcc/x86_64-pc-linux-gnu/13.2.0/../../../../x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu/13.2.0/
/bin/../lib/gcc/x86_64-pc-linux-gnu/13.2.0/../../../../x86_64-pc-linux-gnu/bin/
libraries
 =/bin/../lib/gcc/x86_64-pc-linux-gnu/13.2.0/
/bin/../lib/gcc/
/bin/../lib/gcc/x86_64-pc-linux-gnu/13.2.0/../../../../x86_64-pc-linux-gnu/lib/x86_64-pc-linux-gnu/13.2.0/
/bin/../lib/gcc/x86_64-pc-linux-gnu/13.2.0/../../../../x86_64-pc-linux-gnu/lib/../lib/
/bin/../lib/gcc/x86_64-pc-linux-gnu/13.2.0/../../../x86_64-pc-linux-gnu/13.2.0/
/bin/../lib/gcc/x86_64-pc-linux-gnu/13.2.0/../../../../lib/
/lib/x86_64-pc-linux-gnu/13.2.0/
/lib/../lib/
/usr/lib/x86_64-pc-linux-gnu/13.2.0/
/usr/lib/../lib/
/bin/../lib/gcc/x86_64-pc-linux-gnu/13.2.0/../../../../x86_64-pc-linux-gnu/lib/
/bin/../lib/gcc/x86_64-pc-linux-gnu/13.2.0/../../../
/lib/
/usr/lib/
#

I am trying to make a custom package manager and I have this installation script here

# BPM expects there to be an 'output' directory under the root of the temporary directory after this script finishes executing, otherwise your program may not be correctly installed
# It is recommended you create the 'output' directory along with a 'source' directory in the root of the temporary directory like this
echo "Compiling gcc..."
# Creating 'source' and 'output' directory variables
source=$(pwd)/source
output=$(pwd)/output
# Creating the 'source' and 'output' directories
mkdir $source
mkdir $output
# Downloading files
wget https://ftp.gnu.org/gnu/gcc/gcc-"${BPM_PKG_VERSION}"/gcc-"${BPM_PKG_VERSION}".tar.xz
# Extracting archive into 'source'
tar -xvf gcc-"${BPM_PKG_VERSION}".tar.xz --strip-components=1 -C $source
# Changing directory into 'source'
cd $source
# Changing default directory name for 64-bit libraries ot lib
sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64
# Creating 'build' directory
mkdir build
# Changing directory into 'build'
cd build
# Configuring and compiling GCC
../configure --prefix=/usr                  \
             --libdir=/usr/lib              \
             --enable-languages=c,c++       \
             --enable-default-pie           \
             --enable-default-ssp           \
             --disable-multilib             \
             --disable-bootstrap            \
             --with-system-zlib
make
make DESTDIR="$output" install
ln -s gcc $output/usr/bin/cc
ln -sv gcc.1 $output/usr/share/man/man1/cc.1
mkdir -p $output/usr/lib/bfd-plugins/
ln -sfv ../../libexec/gcc/"$(gcc -dumpmachine)"/"${BPM_PKG_VERSION}"/liblto_plugin.so /usr/lib/bfd-plugins/
mkdir -pv $output/usr/share/gdb/auto-load/usr/lib
mv -v $output/usr/lib/*gdb.py $output/usr/share/gdb/auto-load/usr/lib
echo "GCC compilation complete!"```
#

Can't for the love of god figure out what I am doing wrong

#

Basically for some reasons all gcc search dirs are prefixed with /bin/.. and this causes some problems like being unable to get to /usr/libexec because /bin/../libexec doesn't exist unless I make a symlink myself

#

I also seem to be getting problems with a few c++ header files under /usr/include/c++/13.2.0/x86_64-pc-linux-gnu/. They just can't be picked up by g++