diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-10-05 18:55:54 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-10-05 18:55:54 +0000 |
commit | a2770a85393c56473dd092d8fe2355c254970811 (patch) | |
tree | 3f08c124b012b43d45c6dc5317707ba5f8e5e905 /gcc/gcc.c | |
parent | 4842028bea1728de18df992b531c96789dce0303 (diff) | |
download | gcc-a2770a85393c56473dd092d8fe2355c254970811.tar.gz |
* gcc.c (set_multilib_dir): Don't access *end.
Use memcpy instead of strncpy. Don't write beyond malloced buffer.
(print_multilib_info): Don't show paths starting with ".:".
* genmultilib: Add new option, "yes" if multilibs are enabled.
Update comments. If multilibs not enabled, print .:${osdirout}
for each directory. If multilibs are enabled, always print
${dirout}:${osdirout}, even if the two are the same.
* Makefile.in (s-mlib): Pass @enable_multilib@ to genmultilib.
Pass all MULTILIB_* variables to genmultilib even if
--disable-multilib but MULTILIB_OSDIRNAMES is not empty.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@57846 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gcc.c')
-rw-r--r-- | gcc/gcc.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/gcc/gcc.c b/gcc/gcc.c index b9794fe3998..167dde77c39 100644 --- a/gcc/gcc.c +++ b/gcc/gcc.c @@ -6926,11 +6926,11 @@ set_multilib_dir () while (q < end && *q != ':') q++; - if (*q == ':') + if (q < end) { char *new_multilib_os_dir = xmalloc (end - q); - strncpy (new_multilib_os_dir, q + 1, end - q - 1); - new_multilib_os_dir[end - q] = '\0'; + memcpy (new_multilib_os_dir, q + 1, end - q - 1); + new_multilib_os_dir[end - q - 1] = '\0'; multilib_os_dir = new_multilib_os_dir; break; } @@ -6986,6 +6986,12 @@ print_multilib_info () ++p; } + /* When --disable-multilib was used but target defines + MULTILIB_OSDIRNAMES, entries starting with .: are there just + to find multilib_os_dir, so skip them from output. */ + if (this_path[0] == '.' && this_path[1] == ':') + skip = 1; + /* Check for matches with the multilib_exclusions. We don't bother with the '!' in either list. If any of the exclusion rules match all of its options with the select rule, we skip it. */ |