105 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
# 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;
 | 
						|
    }
 | 
						|
}
 |