ltconfig: Define file_list_spec.

* ltconfig: Define file_list_spec.  Pass file_list_spec and
        with_gnu_ld to libtool.
        * ltcf-c.sh (aix[45]): Define file_list_spec.
        * ltcf-cxx.sh (aix[45]): Same.
        * ltcf-gcj.sh (aix[45]): Same.
        * ltmain.sh: If command exceeds max_cmd_len and file_list_spec
        exists, write list of input files to temporary file.

From-SVN: r99268
This commit is contained in:
David Edelsohn 2005-05-05 15:04:39 +00:00 committed by David Edelsohn
parent c54c732251
commit c9392a2bf8
6 changed files with 108 additions and 64 deletions

View File

@ -1,3 +1,13 @@
2005-05-05 David Edelsohn <edelsohn@gnu.org>
* ltconfig: Define file_list_spec. Pass file_list_spec and
with_gnu_ld to libtool.
* ltcf-c.sh (aix[45]): Define file_list_spec.
* ltcf-cxx.sh (aix[45]): Same.
* ltcf-gcj.sh (aix[45]): Same.
* ltmain.sh: If command exceeds max_cmd_len and file_list_spec
exists, write list of input files to temporary file.
2005-05-04 Mike Stump <mrs@apple.com> 2005-05-04 Mike Stump <mrs@apple.com>
* configure.in: Always pass --target to target configures as * configure.in: Always pass --target to target configures as

View File

@ -267,6 +267,7 @@ else
hardcode_direct=yes hardcode_direct=yes
hardcode_libdir_separator=':' hardcode_libdir_separator=':'
link_all_deplibs=yes link_all_deplibs=yes
file_list_spec='${wl}-f,'
# When large executables or shared objects are built, AIX ld can # When large executables or shared objects are built, AIX ld can
# have problems creating the table of contents. If linking a library # have problems creating the table of contents. If linking a library
# or program results in "error TOC overflow" add -mminimal-toc to # or program results in "error TOC overflow" add -mminimal-toc to

View File

@ -128,6 +128,7 @@ case $host_os in
hardcode_direct=yes hardcode_direct=yes
hardcode_libdir_separator=':' hardcode_libdir_separator=':'
link_all_deplibs=yes link_all_deplibs=yes
file_list_spec='${wl}-f,'
# When large executables or shared objects are built, AIX ld can # When large executables or shared objects are built, AIX ld can
# have problems creating the table of contents. If linking a library # have problems creating the table of contents. If linking a library
# or program results in "error TOC overflow" add -mminimal-toc to # or program results in "error TOC overflow" add -mminimal-toc to

View File

@ -266,6 +266,7 @@ else
hardcode_direct=yes hardcode_direct=yes
hardcode_libdir_separator=':' hardcode_libdir_separator=':'
link_all_deplibs=yes link_all_deplibs=yes
file_list_spec='${wl}-f,'
# When large executables or shared objects are built, AIX ld can # When large executables or shared objects are built, AIX ld can
# have problems creating the table of contents. If linking a library # have problems creating the table of contents. If linking a library
# or program results in "error TOC overflow" add -mminimal-toc to # or program results in "error TOC overflow" add -mminimal-toc to

View File

@ -266,6 +266,7 @@ exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
# rely on this symbol name, it's probably fine to never include it in # rely on this symbol name, it's probably fine to never include it in
# preloaded symbol tables. # preloaded symbol tables.
extract_expsyms_cmds= extract_expsyms_cmds=
file_list_spec=
## Tools: ## Tools:
old_AR="$AR" old_AR="$AR"
@ -2164,7 +2165,7 @@ case $ltmain in
finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \ finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \
hardcode_libdir_flag_spec hardcode_libdir_separator \ hardcode_libdir_flag_spec hardcode_libdir_separator \
sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
compiler_c_o need_locks exclude_expsyms include_expsyms; do compiler_c_o need_locks exclude_expsyms include_expsyms file_list_spec; do
case $var in case $var in
reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
@ -2557,6 +2558,12 @@ exclude_expsyms=$exclude_expsyms
# Symbols that must always be exported. # Symbols that must always be exported.
include_expsyms=$include_expsyms include_expsyms=$include_expsyms
# Specify filename containing input files.
file_list_spec=$file_list_spec
# with_gnu_ld value
with_gnu_ld=$with_gnu_ld
EOF EOF
if test -z "$tagname"; then if test -z "$tagname"; then

View File

@ -3272,7 +3272,6 @@ EOF
: :
else else
# The command line is too long to link in one step, link piecewise. # The command line is too long to link in one step, link piecewise.
$echo "creating reloadable object files..."
# Save the value of $output and $libobjs because we want to # Save the value of $output and $libobjs because we want to
# use them later. If we have whole_archive_flag_spec, we # use them later. If we have whole_archive_flag_spec, we
@ -3286,6 +3285,7 @@ EOF
save_libobjs=$libobjs save_libobjs=$libobjs
fi fi
save_output=$output save_output=$output
output_la=`$echo "X$output" | $Xsed -e "s,^.*/,,"`
# Clear the reloadable object creation command queue and # Clear the reloadable object creation command queue and
# initialize k to one. # initialize k to one.
@ -3295,6 +3295,29 @@ EOF
delfiles= delfiles=
last_robj= last_robj=
k=1 k=1
if test "$with_gnu_ld" = yes; then
output=${output_objdir}/${output_la}.lnkscript
$echo "creating GNU ld script: $output"
$echo 'INPUT (' > $output
for obj in $save_libobjs
do
$echo \""$obj"\" >> $output
done
$echo ')' >> $output
delfiles="$delfiles $output"
elif test "X$file_list_spec" != X; then
output=${output_objdir}/${output_la}.lnk
$echo "creating linker input file list: $output"
: > $output
for obj in $save_libobjs
do
$echo "$obj" >> $output
done
delfiles="$delfiles $output"
output=\"$file_list_spec$output\"
else
$echo "creating reloadable object files..."
output=$output_objdir/$save_output-${k}.$objext output=$output_objdir/$save_output-${k}.$objext
# Loop over the list of objects to be linked. # Loop over the list of objects to be linked.
for obj in $save_libobjs for obj in $save_libobjs
@ -3348,6 +3371,7 @@ EOF
$run eval "$cmd" || exit $? $run eval "$cmd" || exit $?
done done
IFS="$save_ifs" IFS="$save_ifs"
fi
libobjs=$output libobjs=$output
# Restore the value of output. # Restore the value of output.