libtool-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

MinGW issue


From: Bob Friesenhahn
Subject: MinGW issue
Date: Sat, 9 Oct 2004 17:34:31 -0500 (CDT)

MinGW is one of the last libtool targets which still has some serious issues in libtool-branch-2-0. The following documents some problem libtool code and how it is evaluated. The quoting is particularly obtuse. Ideas are appreciated.

Libtool code:
          # Prepare the list of exported symbols
          if test -z "$export_symbols"; then
            export_symbols="$output_objdir/$output.exp"
            $run $RM $export_symbols
            $run eval "${SED} -n -e '/^: @address@hidden/d' -e 's/^.* \(.*\)$/\1/p' "'< 
"$nlist" > "$export_symbols"'
            case $host in
            *cygwin* | *mingw* )
              $run eval "${SED} -e '1iEXPORTS'"' < "$export_symbols" > 
"$output_objdir/$output.def"'
              ;;
            esac
          else

In tests/mdemo:

/bin/sh -x ./libtool --mode=link --tag=CC gcc  -g -O2   -o mdemo.exe 
-export-dynamic main.o ./../../libltdl/libltdlc.l
a libsub.la "-dlopen" self "-dlopen" foo1.la "-dlopen" libfoo2.la 2>&1 | tee 
libtool.log

Execution log fragment:
+ func_echo 'extracting global C symbols from `main.o'\'''
+ echo 'libtool: link: extracting global C symbols from `main.o'\'''
libtool: link: extracting global C symbols from `main.o'
+ eval '/bin/nm -B main.o | sed -n -e '\''s/^.*[        
]\([ABCDGIRSTW][ABCDGIRSTW]*\)[         ][      ]*\(_\)\([_A-Za-z
][_A-Za-z0-9]*\)\{0,1\}$/\1 \2\3 \3/p'\'' >> '\''.libs/mdemo.exe.nm'\'''
++ /bin/nm -B main.o
++ sed -n -e 's/^.*[    ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[         ][      
]*\(_\)\([_A-Za-z][_A-Za-z0-9]*\)\{0,1\}$/\1 \2\3
 \3/p'
+ test -n _GLOBAL_OFFSET_TABLE_
+ eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
++ grep -E -v ' (_GLOBAL_OFFSET_TABLE_)$' .libs/mdemo.exe.nm
+ eval '$MV "$nlist"T "$nlist"'
++ mv -f .libs/mdemo.exe.nmT .libs/mdemo.exe.nm
+ test -n ''
+ test -z ''
+ export_symbols=.libs/mdemo.exe.exp
+ rm -f .libs/mdemo.exe.exp
+ eval '/bin/sed -n -e '\''/^: @address@hidden/d'\'' -e '\''s/^.* \(.*\)$/\1/p'\'' < 
"$nlist" > "$export_symbols"'
++ /bin/sed -n -e '/^: @address@hidden/d' -e 's/^.* \(.*\)$/\1/p'
+ eval '/bin/sed -e '\''1iEXPORTS'\'' < "$export_symbols" > 
"$output_objdir/$output.def"'
++ /bin/sed -e 1iEXPORTS
/bin/sed: -e expression #2, char 3: Extra characters after command

======================================
Bob Friesenhahn
address@hidden
http://www.simplesystems.org/users/bfriesen




reply via email to

[Prev in Thread] Current Thread [Next in Thread]