| # 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; |
| } |
| } |