OpenCores
URL https://opencores.org/ocsvn/scarts/scarts/trunk

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-newlib/] [newlib-1.17.0/] [newlib/] [testsuite/] [lib/] [newlib.exp] - Rev 9

Compare with Previous | Blame | View Log

# Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved.
#
# Permission to use, copy, modify, and distribute this software
# is freely granted, provided that this notice is preserved.
#

# flags.exp overrides the dejagnu versions of libgloss_link_flags,
# newlib_link_flags, and newlib_include_flags.
load_lib flags.exp

proc newlib_version { } {
    global tool_version

    verbose "In newlib version...\n"

    return $tool_version
}

set newlib_initialized 0

proc newlib_init { args } {
    global gluefile wrap_flags
    global newlib_initialized
    global target_info
    # These values are initialized in the local site.exp file.
    global srcdir objdir tmpdir
    global host_triplet target_triplet
    global old_ld_library_path

    verbose "In newlib_init...\n"

    if { $newlib_initialized == 1 } { return; }

    if {[target_info needs_status_wrapper] != "" && \
            [target_info needs_status_wrapper] != "0" && \
            ![info exists gluefile]} {
        set gluefile ${tmpdir}/testglue.o;
        set result [build_wrapper $gluefile];
        if { $result != "" } {
            set gluefile [lindex $result 0];
            set wrap_flags [lindex $result 1];
        } else {
            unset gluefile
        }
    }

    if [string match $host_triplet $target_triplet] then {
        if [string match "i686-pc-linux-gnu" $host_triplet] then {
            set old_ld_library_path [getenv LD_LIBRARY_PATH]
            setenv LD_LIBRARY_PATH "$objdir/.libs"
        }
    }
}

proc newlib_target_compile { source dest type options } {
    global gluefile wrap_flags
    global srcdir objdir
    global host_triplet target_triplet

    verbose "In newlib_target_compile...\n"

    lappend options "libs=-I$srcdir/include"
    verbose "srcdir is $srcdir"
        
    if {[target_info needs_status_wrapper] != "" && \
            [target_info needs_status_wrapper] != "0" && \
            [info exists gluefile] } {
        lappend options "libs=$gluefile"
        lappend options "ldflags=$wrap_flags"
    }

    if [string match $host_triplet $target_triplet] then {
        if [string match "i686-pc-linux-gnu" $host_triplet] then {
            lappend options "libs=$objdir/crt0.o -lc -lgcc"
            lappend options "ldflags=-nostdlib -L$objdir/.libs [newlib_include_flags]"
        }
    }

    return [target_compile $source $dest $type $options]
}

proc newlib_finish { } {
    global old_ld_library_path
    global host_triplet target_triplet

    verbose "In newlib_finish...\n"

    if [string match $host_triplet $target_triplet] then {
        if [string match "i686-pc-linux-gnu" $host_triplet] then {
            setenv LD_LIBRARY_PATH "$old_ld_library_path"
        }
    }
}

proc newlib_exit { } {
    global gluefile;
    
    verbose "In newlib_exit...\n"

    if [info exists gluefile] {
        file_on_build delete $gluefile;
        unset gluefile;
    }
}

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.