Implemented project structure
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
#
|
||||
# This spec file is read by gfortran when linking.
|
||||
# It is used to specify the libraries we need to link in, in the right
|
||||
# order.
|
||||
#
|
||||
|
||||
%rename lib liborig
|
||||
*lib: -lm %(liborig)
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,61 @@
|
||||
# -*- python -*-
|
||||
# Copyright (C) 2009-2023 Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import sys
|
||||
import gdb
|
||||
import os
|
||||
import os.path
|
||||
|
||||
pythondir = '/home/ilg/actions-runners/xpack-dev-tools/1/_work/riscv-none-elf-gcc-xpack/riscv-none-elf-gcc-xpack/build-assets/build/linux-x64/application/share/gcc-13.4.0/python'
|
||||
libdir = '/home/ilg/actions-runners/xpack-dev-tools/1/_work/riscv-none-elf-gcc-xpack/riscv-none-elf-gcc-xpack/build-assets/build/linux-x64/application/riscv-none-elf/lib/rv32iac/ilp32'
|
||||
|
||||
# This file might be loaded when there is no current objfile. This
|
||||
# can happen if the user loads it manually. In this case we don't
|
||||
# update sys.path; instead we just hope the user managed to do that
|
||||
# beforehand.
|
||||
if gdb.current_objfile () is not None:
|
||||
# Update module path. We want to find the relative path from libdir
|
||||
# to pythondir, and then we want to apply that relative path to the
|
||||
# directory holding the objfile with which this file is associated.
|
||||
# This preserves relocatability of the gcc tree.
|
||||
|
||||
# Do a simple normalization that removes duplicate separators.
|
||||
pythondir = os.path.normpath (pythondir)
|
||||
libdir = os.path.normpath (libdir)
|
||||
|
||||
prefix = os.path.commonprefix ([libdir, pythondir])
|
||||
# In some bizarre configuration we might have found a match in the
|
||||
# middle of a directory name.
|
||||
if prefix[-1] != '/':
|
||||
prefix = os.path.dirname (prefix) + '/'
|
||||
|
||||
# Strip off the prefix.
|
||||
pythondir = pythondir[len (prefix):]
|
||||
libdir = libdir[len (prefix):]
|
||||
|
||||
# Compute the ".."s needed to get from libdir to the prefix.
|
||||
dotdots = ('..' + os.sep) * len (libdir.split (os.sep))
|
||||
|
||||
objfile = gdb.current_objfile ().filename
|
||||
dir_ = os.path.join (os.path.dirname (objfile), dotdots, pythondir)
|
||||
|
||||
if not dir_ in sys.path:
|
||||
sys.path.insert(0, dir_)
|
||||
|
||||
# Call a function as a plain import would not execute body of the included file
|
||||
# on repeated reloads of this object file.
|
||||
from libstdcxx.v6 import register_libstdcxx_printers
|
||||
register_libstdcxx_printers(gdb.current_objfile())
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,23 @@
|
||||
%rename link nano_link
|
||||
%rename link_gcc_c_sequence nano_link_gcc_c_sequence
|
||||
%rename cpp nano_cpp
|
||||
|
||||
*cpp:
|
||||
-isystem =/include/newlib-nano %(nano_cpp)
|
||||
|
||||
*nano_libc:
|
||||
-lc_nano
|
||||
|
||||
*nano_libgloss:
|
||||
%{specs=nosys.specs:-lnosys} %{!specs=nosys.specs:-lgloss_nano}
|
||||
|
||||
*link_gcc_c_sequence:
|
||||
%(nano_link_gcc_c_sequence) --start-group %G %(nano_libc) %(nano_libgloss) --end-group
|
||||
|
||||
*link:
|
||||
%(nano_link) %:replace-outfile(-lc -lc_nano) %:replace-outfile(-lg -lg_nano) %:replace-outfile(-lm -lm_nano) %:replace-outfile(-lstdc++ -lstdc++_nano) %:replace-outfile(-lsupc++ -lsupc++_nano)
|
||||
|
||||
*lib:
|
||||
%{!shared:%{g*:-lg_nano} %{!p:%{!pg:-lc_nano}}%{p:-lc_p}%{pg:-lc_p}}
|
||||
|
||||
# ??? Maybe put --gc-sections option in here?
|
||||
@@ -0,0 +1,11 @@
|
||||
%rename link_gcc_c_sequence nosys_link_gcc_c_sequence
|
||||
|
||||
*nosys_libgloss:
|
||||
-lnosys
|
||||
|
||||
*nosys_libc:
|
||||
%{!specs=nano.specs:-lc} %{specs=nano.specs:-lc_nano}
|
||||
|
||||
*link_gcc_c_sequence:
|
||||
%(nosys_link_gcc_c_sequence) --start-group %G %(nosys_libc) %(nosys_libgloss) --end-group
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
# Spec file for semihosting syscalls.
|
||||
|
||||
%rename lib semihost_lib
|
||||
%rename link semihost_link
|
||||
|
||||
*lib:
|
||||
--start-group -lc -lsemihost --end-group
|
||||
|
||||
*link:
|
||||
%(semihost_link) %:replace-outfile(-lgloss -lsemihost)
|
||||
@@ -0,0 +1,10 @@
|
||||
# Spec file for gdb simulator.
|
||||
|
||||
%rename lib sim_lib
|
||||
%rename link sim_link
|
||||
|
||||
*lib:
|
||||
--start-group -lc -lsim --end-group
|
||||
|
||||
*link:
|
||||
%(sim_link) %:replace-outfile(-lgloss -lsim)
|
||||
Reference in New Issue
Block a user