Boost logo

Boost-Build :

From: cherry314159 (cherry314159_at_[hidden])
Date: 2004-10-25 11:31:54


OK, here's another version of the patch with some comments.
Again this should be applied to Milestone 10 preview 2.
The following message could be used for a cvs log entry:

This patch fixes the problem of not handling archive
members filenames longer than 15 characters generated
by gcc. The problem was an incompatibility between how
Microsoft tools handle the string table and Unix-style
tools. This fix recognizes both types of string table
formats.

Regards,

Jose

*** filent.c.old Thu Oct 21 16:13:09 2004
--- filent.c Mon Oct 25 21:19:57 2004
***************
*** 251,258 ****
** in ASCII decimals.
*/

! name = string_table + atoi( ar_hdr.ar_name + 1 );
! endname = name + strlen( name );
}
else
{
--- 251,265 ----
** in ASCII decimals.
*/

! endname = name = string_table + atoi( ar_hdr.ar_name + 1 );
! /* Now determine the end of the filename. Microsoft coff files
! ** use a NUL character to separate entries. Most Unix tools
! ** including gcc terminate the name with '/\n'. Check for both
! ** by looking for a LF as well as a NUL. Note that any trailing
! ** '/' will be trimmed later.
! */
! while (*endname != '\0' && *endname != '\n')
! endname++;
}
else
{
***************
*** 282,287 ****
--- 289,297 ----
lseek( fd, offset, 0 );
}

+ if (string_table)
+ free(string_table);
+
close( fd );
}

 


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk