PROBLEM: (QAR 72957) (Patch ID: OSF440-139) ******** The problem is that any kernel that is larger than 4 MB and linked with the old linker will have the etext and _etext symbols pointing to the wrong place. To see this problem: odump -hv /vmunix This gives you output such as the following: ***SECTION HEADER*** Name Paddr Vaddr Size Scnptr Relptr Lnnoptr Nreloc Nlnno Flags /vmunix: .text 0xfffffc0000230000 0xfffffc0000230000 0x0000000000505160 0x0000000000000270 0x0000000000000000 0x0000000000000000 0 0 REG, TEXT .data 0xfffffc000075c770 0xfffffc000075c770 0x00000000000fe420 0x000000000052c9e0 0x0000000000000000 0x0000000000000000 0 0 REG, DATA .rdata 0xfffffc0000758bb0 0xfffffc0000758bb0 0x0000000000003bc0 0x0000000000528e20 0x0000000000000000 0x0000000000000000 0 0 REG, RDATA .rconst 0xfffffc0000735160 0xfffffc0000735160 0x0000000000023a50 0x00000000005053d0 0x0000000000000000 0x0000000000000000 0 0 REG, RCONST (........etc....) If you add the Size of the .text section to the Vaddr of the .text section, this value should be where etext and _etext point. The preceding example produces the following values: 0xfffffc0000230000 + 0x0000000000505160 = 0xfffffc0000735160 (vaddr) + (Size) = (etext) You could then use the following command to look at the symbol in your vmunix kernel: nm -x /vmunix | grep _etext You might get output such as this: _etext | 0xfffffc0000740250 | T | 0x00000000000008 Note that the address 0xfffffc0000740250 is in the middle of .rconst, instead of the expected 0xfffffc0000735160. PROBLEM: (QAR 74845, 74845, 70308, 73919) (Patch ID: OSF440-230, OSF440-231) An NHD2 installation will modify /usr/ccs/lib/cmplrs/cc/ld (system linker) and the /osf_boot file. This patch provides the same update to the linker and osf_boot file that the NHD2 installation provides. It is being delivered here so that an installation of this patch kit does not undo the linker and osf_boot changes supplied with the NHD2 installation. PROBLEM: (QAR 73776) (Patch ID: OSF440-195) ******** When using the -input flag with the ld(1) command, the ld(1) command core dumps if the line in the file exceeds 1024 characters. The immediate problem is that this limit is not checked. Also, this limit is not documented in the ld(1) man pages. PROBLEM: (QAR 73776) (Patch ID: OSF440-195) ******** The use of the line continuation character (backslash) gets ignored and the continued line is interpreted as another argument to the linker. PROBLEM: (77577) (PATCH ID: OSF440-350) ******** This new version os osf_boot provides more space for NHD installations to load sysconfigtab snippets during bootlink. Previous versions would fail with the message: osf_boot: Not enough space to add '................. This message is produced after the bootlink is complete, but before the system starts the kernel. PROBLEM: (76358, 76821) (PATCH ID: OSF440-376) ******** When linking call_shared and including a library twice on the link line with another library in between, there would be unresolved references reported. However, just including the library once, after the intervening library, would succeed in linking. Here is an example of this: % ls a.c libgcc.a % cat a.c main() { __eprintf(); /* __eprintf is defined in libgcc.a */ } % cc -c a.c -o a.o % ld -call_shared /usr/lib/cmplrs/cc/crt0.o a.o -L. -lc -lgcc -lc ld: Unresolved: _iob fprintf fflush abort # However, if one modifies the link to put -lgcc before -lc and # includes -lc only once on the link line, then the link works fine. % ld -call_shared /usr/lib/cmplrs/cc/crt0.o a.o -L. -lgcc -lc PROBLEM: (80175, 80012) (PATCH ID: OSF440-475) ******** This patch fixes a problem in which the bootlink can fail on alphastations 600, 600A, 500/400.