PERFORCE change 55775 for review
Peter Wemm
peter at FreeBSD.org
Fri Jun 25 07:44:14 GMT 2004
http://perforce.freebsd.org/chv.cgi?CH=55775
Change 55775 by peter at peter_overcee on 2004/06/25 07:42:36
IFC @55774
Affected files ...
.. //depot/projects/hammer/bin/pax/ar_io.c#6 integrate
.. //depot/projects/hammer/contrib/gdb/FREEBSD-upgrade#3 integrate
.. //depot/projects/hammer/contrib/gdb/gdb/config/ia64/fbsd.mh#1 branch
.. //depot/projects/hammer/contrib/gdb/gdb/config/ia64/fbsd.mt#1 branch
.. //depot/projects/hammer/contrib/gdb/gdb/config/ia64/nm-fbsd.h#1 branch
.. //depot/projects/hammer/contrib/gdb/gdb/config/ia64/tm-fbsd.h#1 branch
.. //depot/projects/hammer/contrib/gdb/gdb/ia64-fbsd-nat.c#1 branch
.. //depot/projects/hammer/contrib/gdb/gdb/ia64-fbsd-tdep.c#1 branch
.. //depot/projects/hammer/contrib/gdb/gdb/ia64-tdep.c#3 integrate
.. //depot/projects/hammer/contrib/gdb/gdb/ia64-tdep.h#2 integrate
.. //depot/projects/hammer/contrib/gdb/gdb/inftarg.c#3 integrate
.. //depot/projects/hammer/contrib/gdb/gdb/remote.c#3 integrate
.. //depot/projects/hammer/contrib/gdb/gdb/target.h#4 integrate
.. //depot/projects/hammer/gnu/usr.bin/Makefile#8 integrate
.. //depot/projects/hammer/gnu/usr.bin/binutils/Makefile#8 integrate
.. //depot/projects/hammer/gnu/usr.bin/binutils/doc/Makefile#6 integrate
.. //depot/projects/hammer/gnu/usr.bin/gdb/Makefile#1 branch
.. //depot/projects/hammer/gnu/usr.bin/gdb/Makefile.inc#1 branch
.. //depot/projects/hammer/gnu/usr.bin/gdb/arch/alpha/Makefile#1 branch
.. //depot/projects/hammer/gnu/usr.bin/gdb/arch/alpha/config.h#1 branch
.. //depot/projects/hammer/gnu/usr.bin/gdb/arch/alpha/init.c#1 branch
.. //depot/projects/hammer/gnu/usr.bin/gdb/arch/amd64/Makefile#1 branch
.. //depot/projects/hammer/gnu/usr.bin/gdb/arch/amd64/config.h#1 branch
.. //depot/projects/hammer/gnu/usr.bin/gdb/arch/amd64/init.c#1 branch
.. //depot/projects/hammer/gnu/usr.bin/gdb/arch/i386/Makefile#1 branch
.. //depot/projects/hammer/gnu/usr.bin/gdb/arch/i386/config.h#1 branch
.. //depot/projects/hammer/gnu/usr.bin/gdb/arch/i386/init.c#1 branch
.. //depot/projects/hammer/gnu/usr.bin/gdb/arch/ia64/Makefile#1 branch
.. //depot/projects/hammer/gnu/usr.bin/gdb/arch/ia64/config.h#1 branch
.. //depot/projects/hammer/gnu/usr.bin/gdb/arch/ia64/init.c#1 branch
.. //depot/projects/hammer/gnu/usr.bin/gdb/arch/sparc64/Makefile#1 branch
.. //depot/projects/hammer/gnu/usr.bin/gdb/arch/sparc64/config.h#1 branch
.. //depot/projects/hammer/gnu/usr.bin/gdb/arch/sparc64/init.c#1 branch
.. //depot/projects/hammer/gnu/usr.bin/gdb/doc/Makefile#1 branch
.. //depot/projects/hammer/gnu/usr.bin/gdb/gdb/Makefile#1 branch
.. //depot/projects/hammer/gnu/usr.bin/gdb/gdb/gdb.1#1 branch
.. //depot/projects/hammer/gnu/usr.bin/gdb/gdbtui/Makefile#1 branch
.. //depot/projects/hammer/gnu/usr.bin/gdb/libgdb/Makefile#1 branch
.. //depot/projects/hammer/lib/libdevstat/devstat.c#7 integrate
.. //depot/projects/hammer/lib/libpam/modules/pam_radius/pam_radius.c#8 integrate
.. //depot/projects/hammer/release/doc/ru_RU.KOI8-R/Makefile#2 integrate
.. //depot/projects/hammer/sys/netinet/tcp_input.c#31 integrate
.. //depot/projects/hammer/sys/netinet/tcp_var.h#14 integrate
.. //depot/projects/hammer/usr.bin/paste/paste.1#4 integrate
.. //depot/projects/hammer/usr.bin/paste/paste.c#2 integrate
Differences ...
==== //depot/projects/hammer/bin/pax/ar_io.c#6 (text+ko) ====
@@ -37,7 +37,7 @@
#endif
#endif /* not lint */
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/bin/pax/ar_io.c,v 1.24 2004/04/06 20:06:48 markm Exp $");
+__FBSDID("$FreeBSD: src/bin/pax/ar_io.c,v 1.25 2004/06/25 05:27:59 obrien Exp $");
#include <sys/types.h>
#include <sys/ioctl.h>
@@ -154,8 +154,10 @@
return(-1);
if (chdname != NULL)
- if (chdir(chdname) != 0)
+ if (chdir(chdname) != 0) {
syswarn(1, errno, "Failed chdir to %s", chdname);
+ return(-1);
+ }
/*
* set up is based on device type
*/
==== //depot/projects/hammer/contrib/gdb/FREEBSD-upgrade#3 (text+ko) ====
@@ -1,18 +1,9 @@
-$FreeBSD: src/contrib/gdb/FREEBSD-upgrade,v 1.2 2002/10/12 21:33:49 mp Exp $
+$FreeBSD: src/contrib/gdb/FREEBSD-upgrade,v 1.3 2004/06/25 05:04:09 marcel Exp $
+
+To strip down a new version of gdb for import, extract the files like this:
-To strip down a new version of gdb for import, extract
-the files like this:
+ tar xzf gdb-6.1.1.tar.gz -X FREEBSD-Xlist
- tar xzf gdb-5.2.1.tar.gz -X FREEBSD-Xlist
- tar xzf gdb-5.2.1.tar.gz gdb-5.2.1/gdb/config/i386
- tar xzf gdb-5.2.1.tar.gz gdb-5.2.1/gdb/config/alpha
- tar xzf gdb-5.2.1.tar.gz gdb-5.2.1/gdb/config/powerpc
- tar xzf gdb-5.2.1.tar.gz gdb-5.2.1/gdb/config/ia64
- tar xzf gdb-5.2.1.tar.gz gdb-5.2.1/gdb/config/none
- tar xzf gdb-5.2.1.tar.gz gdb-5.2.1/gdb/config/sparc
- tar xzf gdb-5.2.1.tar.gz gdb-5.2.1/gdb/config/arm
- tar xzf gdb-5.2.1.tar.gz gdb-5.2.1/gdb/config/nm-linux.h
- tar xzf gdb-5.2.1.tar.gz gdb-5.2.1/gdb/config/tm-linux.h
- tar xzf gdb-5.2.1.tar.gz gdb-5.2.1/gdb/config/tm-vxworks.h
- tar xzf gdb-5.2.1.tar.gz gdb-5.2.1/include/gdb/ChangeLog
- tar xzf gdb-5.2.1.tar.gz gdb-5.2.1/include/gdb/signals.h
+After importing, remove files on the vendor branch that are not part of the
+new gdb version (if any). Then remove files from HEAD that are not part of
+the new version (if applicable).
==== //depot/projects/hammer/contrib/gdb/gdb/ia64-tdep.c#3 (text+ko) ====
@@ -45,17 +45,6 @@
#include "libunwind-ia64.h"
#endif
-/* Hook for determining the global pointer when calling functions in
- the inferior under AIX. The initialization code in ia64-aix-nat.c
- sets this hook to the address of a function which will find the
- global pointer for a given address.
-
- The generic code which uses the dynamic section in the inferior for
- finding the global pointer is not of much use on AIX since the
- values obtained from the inferior have not been relocated. */
-
-CORE_ADDR (*native_find_global_pointer) (CORE_ADDR) = 0;
-
/* An enumeration of the different IA-64 instruction types. */
typedef enum instruction_type
@@ -256,20 +245,6 @@
};
-struct gdbarch_tdep
- {
- CORE_ADDR (*sigcontext_register_address) (CORE_ADDR, int);
- /* OS specific function which, given a frame address
- and register number, returns the offset to the
- given register from the start of the frame. */
- CORE_ADDR (*find_global_pointer) (CORE_ADDR);
- };
-
-#define SIGCONTEXT_REGISTER_ADDRESS \
- (gdbarch_tdep (current_gdbarch)->sigcontext_register_address)
-#define FIND_GLOBAL_POINTER \
- (gdbarch_tdep (current_gdbarch)->find_global_pointer)
-
int
ia64_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
struct reggroup *group)
@@ -682,9 +657,18 @@
if ((cfm & 0x7f) > regnum - V32_REGNUM)
{
+ ULONGEST bspstore;
ULONGEST reg_addr = rse_address_add (bsp, (regnum - V32_REGNUM));
- reg = read_memory_integer ((CORE_ADDR)reg_addr, 8);
- store_unsigned_integer (buf, register_size (current_gdbarch, regnum), reg);
+ regcache_cooked_read_unsigned (regcache, IA64_BSPSTORE_REGNUM,
+ &bspstore);
+ if (reg_addr < bspstore) {
+ reg = read_memory_integer ((CORE_ADDR)reg_addr, 8);
+ store_unsigned_integer (buf, register_size (current_gdbarch,
+ regnum), reg);
+ } else
+ target_read_partial (¤t_target, TARGET_OBJECT_DIRTY,
+ (void*)bspstore, buf, reg_addr - bspstore,
+ register_size (current_gdbarch, regnum));
}
else
store_unsigned_integer (buf, register_size (current_gdbarch, regnum), 0);
@@ -725,7 +709,21 @@
if (nat_addr >= bsp)
regcache_cooked_read_unsigned (regcache, IA64_RNAT_REGNUM, &nat_collection);
else
- nat_collection = read_memory_integer (nat_addr, 8);
+ {
+ ULONGEST bspstore;
+ regcache_cooked_read_unsigned (regcache, IA64_BSPSTORE_REGNUM,
+ &bspstore);
+ if (nat_addr < bspstore)
+ nat_collection = read_memory_integer (nat_addr, 8);
+ else {
+ char natbuf[8];
+ target_read_partial (¤t_target, TARGET_OBJECT_DIRTY,
+ (void*)bspstore, natbuf,
+ nat_addr - bspstore,
+ register_size (current_gdbarch, regnum));
+ nat_collection = *((uint64_t*)natbuf);
+ }
+ }
nat_bit = (gr_addr >> 3) & 0x3f;
natN_val = (nat_collection >> nat_bit) & 1;
}
@@ -789,8 +787,16 @@
if ((cfm & 0x7f) > regnum - V32_REGNUM)
{
+ ULONGEST bspstore;
ULONGEST reg_addr = rse_address_add (bsp, (regnum - V32_REGNUM));
- write_memory (reg_addr, (void *)buf, 8);
+ regcache_cooked_read_unsigned (regcache, IA64_BSPSTORE_REGNUM,
+ &bspstore);
+ if (reg_addr < bspstore)
+ write_memory (reg_addr, (void *)buf, 8);
+ else
+ target_write_partial (¤t_target, TARGET_OBJECT_DIRTY,
+ (void*)bspstore, buf, reg_addr - bspstore,
+ register_size (current_gdbarch, regnum));
}
}
else if (IA64_NAT0_REGNUM <= regnum && regnum <= IA64_NAT31_REGNUM)
@@ -845,13 +851,33 @@
else
{
char nat_buf[8];
- nat_collection = read_memory_integer (nat_addr, 8);
+ ULONGEST bspstore;
+ regcache_cooked_read_unsigned (regcache, IA64_BSPSTORE_REGNUM,
+ &bspstore);
+ if (nat_addr < bspstore)
+ nat_collection = read_memory_integer (nat_addr, 8);
+ else {
+ char natbuf[8];
+ target_read_partial (¤t_target, TARGET_OBJECT_DIRTY,
+ (void*)bspstore, natbuf,
+ nat_addr - bspstore,
+ register_size (current_gdbarch, regnum));
+ nat_collection = *((uint64_t*)natbuf);
+ }
if (natN_val)
nat_collection |= natN_mask;
else
nat_collection &= ~natN_mask;
- store_unsigned_integer (nat_buf, register_size (current_gdbarch, regnum), nat_collection);
- write_memory (nat_addr, nat_buf, 8);
+ store_unsigned_integer (nat_buf, register_size (current_gdbarch,
+ regnum),
+ nat_collection);
+ if (nat_addr < bspstore)
+ write_memory (nat_addr, nat_buf, 8);
+ else
+ target_write_partial (¤t_target, TARGET_OBJECT_DIRTY,
+ (void*)bspstore, nat_buf,
+ nat_addr - bspstore,
+ register_size (current_gdbarch, regnum));
}
}
}
@@ -1813,6 +1839,7 @@
prev_bof = rse_address_add (prev_bsp, -(prev_cfm & 0x7f));
addr = rse_address_add (prev_bof, (regnum - IA64_GR32_REGNUM));
+ /* XXX marcel */
*lvalp = lval_memory;
*addrp = addr;
read_memory (addr, valuep, register_size (current_gdbarch, regnum));
@@ -2858,8 +2885,8 @@
DT_PLTGOT tag. If it finds one of these, the corresponding
d_un.d_ptr value is the global pointer. */
-static CORE_ADDR
-generic_elf_find_global_pointer (CORE_ADDR faddr)
+CORE_ADDR
+ia64_generic_find_global_pointer (CORE_ADDR faddr)
{
struct obj_section *faddr_sect;
@@ -3255,33 +3282,10 @@
tdep = xmalloc (sizeof (struct gdbarch_tdep));
gdbarch = gdbarch_alloc (&info, tdep);
+ tdep->osabi = info.osabi;
+ tdep->sigcontext_register_address = NULL;
+ tdep->find_global_pointer = ia64_generic_find_global_pointer;
- /* Set the method of obtaining the sigcontext addresses at which
- registers are saved. The method of checking to see if
- native_find_global_pointer is nonzero to indicate that we're
- on AIX is kind of hokey, but I can't think of a better way
- to do it. */
- if (info.osabi == GDB_OSABI_LINUX)
- tdep->sigcontext_register_address = ia64_linux_sigcontext_register_address;
- else if (native_find_global_pointer != 0)
- tdep->sigcontext_register_address = ia64_aix_sigcontext_register_address;
- else
- tdep->sigcontext_register_address = 0;
-
- /* We know that GNU/Linux won't have to resort to the
- native_find_global_pointer hackery. But that's the only one we
- know about so far, so if native_find_global_pointer is set to
- something non-zero, then use it. Otherwise fall back to using
- generic_elf_find_global_pointer. This arrangement should (in
- theory) allow us to cross debug GNU/Linux binaries from an AIX
- machine. */
- if (info.osabi == GDB_OSABI_LINUX)
- tdep->find_global_pointer = generic_elf_find_global_pointer;
- else if (native_find_global_pointer != 0)
- tdep->find_global_pointer = native_find_global_pointer;
- else
- tdep->find_global_pointer = generic_elf_find_global_pointer;
-
/* Define the ia64 floating-point format to gdb. */
builtin_type_ia64_ext =
init_type (TYPE_CODE_FLT, 128 / 8,
@@ -3338,10 +3342,7 @@
set_gdbarch_memory_remove_breakpoint (gdbarch, ia64_memory_remove_breakpoint);
set_gdbarch_breakpoint_from_pc (gdbarch, ia64_breakpoint_from_pc);
set_gdbarch_read_pc (gdbarch, ia64_read_pc);
- if (info.osabi == GDB_OSABI_LINUX)
- set_gdbarch_write_pc (gdbarch, ia64_linux_write_pc);
- else
- set_gdbarch_write_pc (gdbarch, ia64_write_pc);
+ set_gdbarch_write_pc (gdbarch, ia64_write_pc);
/* Settings for calling functions in the inferior. */
set_gdbarch_push_dummy_call (gdbarch, ia64_push_dummy_call);
@@ -3366,6 +3367,8 @@
set_gdbarch_print_insn (gdbarch, ia64_print_insn);
set_gdbarch_convert_from_func_ptr_addr (gdbarch, ia64_convert_from_func_ptr_addr);
+ gdbarch_init_osabi (info, gdbarch);
+
return gdbarch;
}
==== //depot/projects/hammer/contrib/gdb/gdb/ia64-tdep.h#2 (text+ko) ====
@@ -22,10 +22,25 @@
#ifndef IA64_TDEP_H
#define IA64_TDEP_H
-extern CORE_ADDR ia64_linux_sigcontext_register_address (CORE_ADDR, int);
-extern CORE_ADDR ia64_aix_sigcontext_register_address (CORE_ADDR, int);
-extern unsigned long ia64_linux_getunwind_table (void *, size_t);
-extern void ia64_write_pc (CORE_ADDR, ptid_t);
-extern void ia64_linux_write_pc (CORE_ADDR, ptid_t);
+#include "osabi.h"
+
+/* Target-dependent structure in gdbarch. */
+struct gdbarch_tdep
+{
+ enum gdb_osabi osabi; /* OS/ABI of inferior. */
+
+ CORE_ADDR (*sigcontext_register_address) (CORE_ADDR, int);
+ /* OS specific function which, given a frame address
+ and register number, returns the offset to the
+ given register from the start of the frame. */
+ CORE_ADDR (*find_global_pointer) (CORE_ADDR);
+};
+
+#define SIGCONTEXT_REGISTER_ADDRESS \
+ (gdbarch_tdep (current_gdbarch)->sigcontext_register_address)
+#define FIND_GLOBAL_POINTER \
+ (gdbarch_tdep (current_gdbarch)->find_global_pointer)
+
+extern CORE_ADDR ia64_generic_find_global_pointer (CORE_ADDR);
#endif /* IA64_TDEP_H */
==== //depot/projects/hammer/contrib/gdb/gdb/inftarg.c#3 (text+ko) ====
@@ -592,6 +592,13 @@
return NATIVE_XFER_WCOOKIE (ops, object, annex, readbuf, writebuf,
offset, len);
+ case TARGET_OBJECT_DIRTY:
+#ifndef TARGET_XFER_DIRTY
+#define TARGET_XFER_DIRTY(OPS,OBJECT,ANNEX,WRITEBUF,READBUF,OFFSET,LEN) (-1)
+#endif
+ return TARGET_XFER_DIRTY (ops, object, annex, readbuf, writebuf,
+ offset, len);
+
default:
return -1;
}
==== //depot/projects/hammer/contrib/gdb/gdb/remote.c#3 (text+ko) ====
@@ -998,6 +998,23 @@
show_packet_config_cmd (&remote_protocol_qPart_auxv);
}
+/* Should we try the 'qPart:dirty' (target dirty register read) request? */
+static struct packet_config remote_protocol_qPart_dirty;
+
+static void
+set_remote_protocol_qPart_dirty_packet_cmd (char *args, int from_tty,
+ struct cmd_list_element *c)
+{
+ update_packet_config (&remote_protocol_qPart_dirty);
+}
+
+static void
+show_remote_protocol_qPart_dirty_packet_cmd (char *args, int from_tty,
+ struct cmd_list_element *c)
+{
+ show_packet_config_cmd (&remote_protocol_qPart_dirty);
+}
+
/* Tokens for use by the asynchronous signal handlers for SIGINT */
static void *sigint_remote_twice_token;
@@ -2088,6 +2105,7 @@
downloading. */
update_packet_config (&remote_protocol_binary_download);
update_packet_config (&remote_protocol_qPart_auxv);
+ update_packet_config (&remote_protocol_qPart_dirty);
}
/* Symbol look-up. */
@@ -4925,6 +4943,23 @@
}
return -1;
+ case TARGET_OBJECT_DIRTY:
+ if (remote_protocol_qPart_dirty.support != PACKET_DISABLE)
+ {
+ snprintf (buf2, rs->remote_packet_size, "qPart:dirty:read::%lx",
+ (long)(offset >> 3));
+ i = putpkt (buf2);
+ if (i < 0)
+ return i;
+ buf2[0] = '\0';
+ getpkt (buf2, rs->remote_packet_size, 0);
+ if (packet_ok (buf2, &remote_protocol_qPart_dirty) != PACKET_OK)
+ return -1;
+ i = hex2bin (buf2, readbuf, len);
+ return i;
+ }
+ return -1;
+
default:
return -1;
}
@@ -5423,6 +5458,7 @@
show_remote_protocol_vcont_packet_cmd (args, from_tty, NULL);
show_remote_protocol_binary_download_cmd (args, from_tty, NULL);
show_remote_protocol_qPart_auxv_packet_cmd (args, from_tty, NULL);
+ show_remote_protocol_qPart_dirty_packet_cmd (args, from_tty, NULL);
}
static void
@@ -5673,6 +5709,13 @@
&remote_set_cmdlist, &remote_show_cmdlist,
0);
+ add_packet_config_cmd (&remote_protocol_qPart_dirty,
+ "qPart_dirty", "read-dirty-registers",
+ set_remote_protocol_qPart_dirty_packet_cmd,
+ show_remote_protocol_qPart_dirty_packet_cmd,
+ &remote_set_cmdlist, &remote_show_cmdlist,
+ 0);
+
/* Keep the old ``set remote Z-packet ...'' working. */
add_setshow_auto_boolean_cmd ("Z-packet", class_obscure,
&remote_Z_packet_detect, "\
==== //depot/projects/hammer/contrib/gdb/gdb/target.h#4 (text+ko) ====
@@ -229,7 +229,9 @@
/* Transfer auxilliary vector. */
TARGET_OBJECT_AUXV,
/* StackGhost cookie. See "sparc-tdep.c". */
- TARGET_OBJECT_WCOOKIE
+ TARGET_OBJECT_WCOOKIE,
+ /* Dirty registers. See "ia64-tdep.c". */
+ TARGET_OBJECT_DIRTY
/* Possible future objects: TARGET_OBJECT_FILE, TARGET_OBJECT_PROC, ... */
};
==== //depot/projects/hammer/gnu/usr.bin/Makefile#8 (text+ko) ====
@@ -1,11 +1,18 @@
-# $FreeBSD: src/gnu/usr.bin/Makefile,v 1.80 2004/06/10 19:17:20 peter Exp $
+# $FreeBSD: src/gnu/usr.bin/Makefile,v 1.81 2004/06/25 07:15:13 marcel Exp $
-SUBDIR= bc ${_binutils} ${_cc} cpio dc dialog diff diff3 \
+SUBDIR= bc ${_binutils} ${_cc} cpio dc dialog diff diff3 ${_gdb} \
${_gperf} grep gzip man patch rcs sdiff send-pr sort tar texinfo
+.if ${MACHINE_ARCH} == "arm" || ${MACHINE_ARCH} == "powerpc"
+NO_GDB= not yet
+.endif
+
.if !defined(NO_TOOLCHAIN)
_cc=cc
_binutils=binutils
+.if !defined(NO_GDB)
+_gdb=gdb
+.endif
.endif
.if !defined(NO_CXX)
==== //depot/projects/hammer/gnu/usr.bin/binutils/Makefile#8 (text+ko) ====
@@ -1,15 +1,7 @@
-# $FreeBSD: src/gnu/usr.bin/binutils/Makefile,v 1.28 2004/06/21 18:09:20 obrien Exp $
+# $FreeBSD: src/gnu/usr.bin/binutils/Makefile,v 1.29 2004/06/25 07:34:56 obrien Exp $
SUBDIR= libiberty libbfd libopcodes libbinutils \
addr2line ar as ld nm objcopy objdump ranlib readelf \
size strings strip doc
-NO_GDB= yes
-TARGET_ARCH?= ${MACHINE_ARCH}
-.if (${TARGET_ARCH} == "alpha" \
- || ${TARGET_ARCH} == "i386" ) \
- && !defined(NO_GDB)
-SUBDIR+= gdb gdbreplay
-.endif
-
.include <bsd.subdir.mk>
==== //depot/projects/hammer/gnu/usr.bin/binutils/doc/Makefile#6 (text+ko) ====
@@ -1,16 +1,10 @@
-# $FreeBSD: src/gnu/usr.bin/binutils/doc/Makefile,v 1.20 2004/06/23 04:36:04 obrien Exp $
+# $FreeBSD: src/gnu/usr.bin/binutils/doc/Makefile,v 1.21 2004/06/25 06:55:49 marcel Exp $
.include "../Makefile.inc0"
-GDBDIR= ${.CURDIR}/../../../../contrib/gdb
-CONTRIBDIR= ${.CURDIR}/../../../../contrib
+.PATH: ${SRCDIR}/gas/doc ${SRCDIR}/ld ${SRCDIR}/bfd/doc
-.PATH: ${SRCDIR}/gas/doc ${SRCDIR}/ld ${SRCDIR}/bfd/doc ${GDBDIR}/gdb/doc ${GDBDIR}/gdb/mi
-
-INFO= as ld gasp stabs binutils
-.if !defined(NO_GDB)
-INFO+= gdb gdbint
-.endif
+INFO= as ld gasp binutils
INFOSECTION= "Programming & development tools."
INFOENTRY_as= "* As: (as). The GNU assembler."
INFOENTRY_gasp= "* Gasp: (gasp). The GNU Assembler Macro Preprocessor."
@@ -20,13 +14,8 @@
MAKEINFOFLAGS+= --no-validate
MAKEINFOFLAGS+= -I ${SRCDIR}/gas/doc -I ${SRCDIR}/ld -I ${SRCDIR}/bfd/doc
MAKEINFOFLAGS+= -I ${SRCDIR}/binutils
-MAKEINFOFLAGS+= -I ${GDBDIR}/gdb/doc
-MAKEINFOFLAGS+= -I ${GDBDIR}/gdb/mi
-MAKEINFOFLAGS+= -I ${CONTRIBDIR}/libreadline/doc
-CLEANFILES= configdoc.texi gdb-cfg.texi GDBvn.texi \
- inc-hist.texinfo inc-hist.texinfo.orig \
- config.texi gasver.texi ldver.texi
+CLEANFILES= configdoc.texi config.texi gasver.texi ldver.texi
as.info: as.texinfo asconfig.texi c-i386.texi gasver.texi
ld.info: ld.texinfo bfdsumm.texi ldver.texi configdoc.texi
@@ -34,27 +23,10 @@
configdoc.texi: gen-doc.texi
ln -sf ${.ALLSRC} ${.TARGET}
-gdb.info: gdb.texinfo gdb-cfg.texi GDBvn.texi annotate.texinfo \
- fdl.texi gpl.texi \
- rluser.texinfo inc-hist.texinfo
-
-gdbint.info: gdbint.texinfo gdb-cfg.texi fdl.texi observer.texi
-
-gdb-cfg.texi: all-cfg.texi
- ln -sf ${.ALLSRC} ${.TARGET}
-
-GDBvn.texi: ${GDBDIR}/gdb/version.in
- echo "@set GDBVN `sed q ${.ALLSRC}`" > ${.TARGET}
-
.PATH: ${SRCDIR}/binutils/doc
binutils.info: binutils.texi config.texi
config.texi gasver.texi ldver.texi:
echo "@set VERSION ${VERSION}" > ${.TARGET}
-.PATH: ${CONTRIBDIR}/libreadline/doc
-inc-hist.texinfo: hsuser.texinfo inc-hist.diff
- cp ${.ALLSRC:M*.texinfo} ${.TARGET}
- patch -b .orig < ${.ALLSRC:M*.diff}
-
.include <bsd.info.mk>
==== //depot/projects/hammer/lib/libdevstat/devstat.c#7 (text+ko) ====
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libdevstat/devstat.c,v 1.25 2003/10/13 05:30:20 bde Exp $");
+__FBSDID("$FreeBSD: src/lib/libdevstat/devstat.c,v 1.26 2004/06/25 01:16:02 kan Exp $");
#include <sys/types.h>
#include <sys/sysctl.h>
@@ -1572,7 +1572,7 @@
const char *func_name = "readkmem_nl";
struct nlist nl[2];
- (const char *)nl[0].n_name = name;
+ nl[0].n_name = (char *)name;
nl[1].n_name = NULL;
if (kvm_nlist(kd, nl) == -1) {
==== //depot/projects/hammer/lib/libpam/modules/pam_radius/pam_radius.c#8 (text+ko) ====
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libpam/modules/pam_radius/pam_radius.c,v 1.20 2003/12/11 13:55:16 des Exp $");
+__FBSDID("$FreeBSD: src/lib/libpam/modules/pam_radius/pam_radius.c,v 1.21 2004/06/25 01:54:26 kan Exp $");
#include <sys/param.h>
#include <sys/types.h>
@@ -111,7 +111,7 @@
hints.ai_family = PF_INET;
if (getaddrinfo(nas_ipaddr, NULL, &hints, &res) == 0 &&
res != NULL) {
- (struct sockaddr *)haddr = res->ai_addr;
+ haddr = (struct sockaddr_in*)res->ai_addr;
error = rad_put_addr(radh, RAD_NAS_IP_ADDRESS,
haddr->sin_addr);
freeaddrinfo(res);
==== //depot/projects/hammer/release/doc/ru_RU.KOI8-R/Makefile#2 (text+ko) ====
@@ -1,7 +1,7 @@
# The FreeBSD Russian Documentation Project
#
-# $FreeBSDru: frdp/release/doc/ru_RU.KOI8-R/Makefile,v 1.3 2004/05/31 10:22:42 den Exp $
-# $FreeBSD: src/release/doc/ru_RU.KOI8-R/Makefile,v 1.2 2004/05/31 11:43:20 den Exp $
+# $FreeBSDru: frdp/release/doc/ru_RU.KOI8-R/Makefile,v 1.5 2004/06/24 13:34:36 den Exp $
+# $FreeBSD: src/release/doc/ru_RU.KOI8-R/Makefile,v 1.3 2004/06/25 05:03:56 den Exp $
#
# Original revision: 1.3
#
@@ -10,9 +10,9 @@
SUBDIR = relnotes
SUBDIR+= hardware
-#SUBDIR+= readme
+SUBDIR+= readme
#SUBDIR+= errata
-#SUBDIR+= installation
+SUBDIR+= installation
#SUBDIR+= early-adopter
COMPAT_SYMLINK = ru
==== //depot/projects/hammer/sys/netinet/tcp_input.c#31 (text+ko) ====
@@ -27,7 +27,7 @@
* SUCH DAMAGE.
*
* @(#)tcp_input.c 8.12 (Berkeley) 5/24/95
- * $FreeBSD: src/sys/netinet/tcp_input.c,v 1.246 2004/06/24 03:07:27 rwatson Exp $
+ * $FreeBSD: src/sys/netinet/tcp_input.c,v 1.247 2004/06/25 04:11:26 ps Exp $
*/
#include "opt_ipfw.h" /* for ipfw_fwd */
@@ -1057,7 +1057,7 @@
* for incoming connections is handled in tcp_syncache.
* XXX this is traditional behavior, may need to be cleaned up.
*/
- tcp_dooptions(tp,&to, optp, optlen, thflags & TH_SYN,th);
+ tcp_dooptions(tp, &to, optp, optlen, thflags & TH_SYN, th);
if (thflags & TH_SYN) {
if (to.to_flags & TOF_SCALE) {
tp->t_flags |= TF_RCVD_SCALE;
@@ -1084,7 +1084,7 @@
if (tp->sack_enable) {
/* Delete stale (cumulatively acked) SACK holes */
tcp_del_sackholes(tp, th);
- tp->rcv_laststart = th->th_seq; /* last rec'vd segment*/
+ tp->rcv_laststart = th->th_seq; /* last recv'd segment*/
tp->rcv_lastend = th->th_seq + tlen;
}
@@ -2579,7 +2579,7 @@
tcp_dooptions(tp, to, cp, cnt, is_syn, th)
struct tcpcb *tp;
struct tcpopt *to;
- u_char *cp;
+ u_char *cp;
int cnt;
int is_syn;
struct tcphdr *th;
==== //depot/projects/hammer/sys/netinet/tcp_var.h#14 (text+ko) ====
@@ -27,7 +27,7 @@
* SUCH DAMAGE.
*
* @(#)tcp_var.h 8.4 (Berkeley) 5/24/95
- * $FreeBSD: src/sys/netinet/tcp_var.h,v 1.106 2004/06/23 21:04:37 ps Exp $
+ * $FreeBSD: src/sys/netinet/tcp_var.h,v 1.107 2004/06/25 02:29:58 bms Exp $
*/
#ifndef _NETINET_TCP_VAR_H_
@@ -54,7 +54,7 @@
struct sackblk {
tcp_seq start; /* start seq no. of sack block */
- tcp_seq end; /* end seq no. */
+ tcp_seq end; /* end seq no. */
};
struct sackhole {
@@ -63,6 +63,7 @@
tcp_seq rxmit; /* next seq. no in hole to be retransmitted */
struct sackhole *next; /* next in list */
};
+
struct tcptemp {
u_char tt_ipgen[40]; /* the size must be of max ip header, now IPv6 */
struct tcphdr tt_t;
@@ -190,11 +191,10 @@
u_long rcv_second; /* start of interval second */
u_long rcv_pps; /* received packets per second */
u_long rcv_byps; /* received bytes per second */
- /* SACK related state */
+/* SACK related state */
int sack_enable; /* enable SACK for this connection */
int snd_numholes; /* number of holes seen by sender */
struct sackhole *snd_holes; /* linked list of holes (sorted) */
-
tcp_seq rcv_laststart; /* start of last segment recd. */
tcp_seq rcv_lastend; /* end of ... */
tcp_seq rcv_lastsack; /* last seq number(+1) sack'd by rcv'r*/
==== //depot/projects/hammer/usr.bin/paste/paste.1#4 (text+ko) ====
@@ -34,9 +34,9 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)paste.1 8.1 (Berkeley) 6/6/93
-.\" $FreeBSD: src/usr.bin/paste/paste.1,v 1.15 2002/12/23 16:04:51 ru Exp $
+.\" $FreeBSD: src/usr.bin/paste/paste.1,v 1.16 2004/06/25 01:48:43 tjr Exp $
.\"
-.Dd September 20, 2001
+.Dd June 25, 2004
.Dt PASTE 1
.Os
.Sh NAME
@@ -148,7 +148,3 @@
.Nm
command appeared in
.At 32v .
-.Sh BUGS
-Multibyte character delimiters cannot be specified with the
-.Fl d
-option.
==== //depot/projects/hammer/usr.bin/paste/paste.c#2 (text+ko) ====
@@ -47,38 +47,56 @@
#endif
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/usr.bin/paste/paste.c,v 1.13 2002/05/24 08:56:49 tjr Exp $");
+__FBSDID("$FreeBSD: src/usr.bin/paste/paste.c,v 1.14 2004/06/25 01:48:43 tjr Exp $");
#include <sys/types.h>
#include <err.h>
#include <errno.h>
#include <limits.h>
+#include <locale.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <wchar.h>
-char *delim;
+wchar_t *delim;
int delimcnt;
int parallel(char **);
int sequential(char **);
-int tr(char *);
+int tr(wchar_t *);
static void usage(void);
-char tab[] = "\t";
+wchar_t tab[] = L"\t";
int
main(int argc, char *argv[])
{
int ch, rval, seq;
+ wchar_t *warg;
+ const char *arg;
+ size_t len;
+
+ setlocale(LC_CTYPE, "");
seq = 0;
while ((ch = getopt(argc, argv, "d:s")) != -1)
switch(ch) {
case 'd':
- delimcnt = tr(delim = optarg);
+ arg = optarg;
+ len = mbsrtowcs(NULL, &arg, 0, NULL);
+ if (len == (size_t)-1)
+ err(1, "delimiters");
+ warg = malloc((len + 1) * sizeof(*warg));
+ if (warg == NULL)
+ err(1, NULL);
+ arg = optarg;
+ len = mbsrtowcs(warg, &arg, len + 1, NULL);
+ if (len == (size_t)-1)
+ err(1, "delimiters");
+ delimcnt = tr(delim = warg);
break;
case 's':
seq = 1;
@@ -116,10 +134,11 @@
{
LIST *lp;
int cnt;
- char ch, *buf, *p;
+ wint_t ich;
+ wchar_t ch;
+ char *p;
LIST *head, *tmp;
int opencnt, output;
- size_t len;
for (cnt = 0, head = NULL; (p = *argv); ++argv, ++cnt) {
if ((lp = malloc(sizeof(LIST))) == NULL)
@@ -144,16 +163,16 @@
if (!lp->fp) {
if (output && lp->cnt &&
(ch = delim[(lp->cnt - 1) % delimcnt]))
- putchar(ch);
+ putwchar(ch);
continue;
}
- if ((buf = fgetln(lp->fp, &len)) == NULL) {
+ if ((ich = getwc(lp->fp)) == WEOF) {
if (!--opencnt)
break;
lp->fp = NULL;
if (output && lp->cnt &&
(ch = delim[(lp->cnt - 1) % delimcnt]))
- putchar(ch);
+ putwchar(ch);
continue;
}
/*
@@ -164,15 +183,17 @@
output = 1;
for (cnt = 0; cnt < lp->cnt; ++cnt)
if ((ch = delim[cnt % delimcnt]))
- putchar(ch);
+ putwchar(ch);
} else if ((ch = delim[(lp->cnt - 1) % delimcnt]))
- putchar(ch);
- if (buf[len - 1] == '\n')
- len--;
- fwrite(buf, 1, len, stdout);
+ putwchar(ch);
+ if (ich == '\n')
+ continue;
+ do {
+ putwchar(ich);
+ } while ((ich = getwc(lp->fp)) != WEOF && ich != '\n');
}
if (output)
- putchar('\n');
+ putwchar('\n');
}
return (0);
@@ -183,8 +204,8 @@
{
FILE *fp;
int cnt, failed, needdelim;
- char *buf, *p;
- size_t len;
+ wint_t ch;
+ char *p;
failed = 0;
for (; (p = *argv); ++argv) {
@@ -196,21 +217,21 @@
continue;
}
cnt = needdelim = 0;
- while ((buf = fgetln(fp, &len)) != NULL) {
+ while ((ch = getwc(fp)) != WEOF) {
if (needdelim) {
needdelim = 0;
if (delim[cnt] != '\0')
- putchar(delim[cnt]);
+ putwchar(delim[cnt]);
if (++cnt == delimcnt)
cnt = 0;
}
- if (buf[len - 1] == '\n')
- len--;
- fwrite(buf, 1, len, stdout);
- needdelim = 1;
+ if (ch != '\n')
+ putwchar(ch);
+ else
+ needdelim = 1;
}
if (needdelim)
- putchar('\n');
+ putwchar('\n');
if (fp != stdin)
(void)fclose(fp);
}
@@ -219,10 +240,10 @@
}
int
-tr(char *arg)
+tr(wchar_t *arg)
{
int cnt;
- char ch, *p;
+ wchar_t ch, *p;
for (p = arg, cnt = 0; (ch = *p++); ++arg, ++cnt)
if (ch == '\\')
More information about the p4-projects
mailing list