1 1999-02-27 Roland McGrath <roland@baalperazim.frob.com>
3 * hurd/hurdselect.c (_hurd_select): When bailing for bogus fd, don't
4 try to _hurd_port_free a lower-numbered descriptor that was not in any
7 1999-02-26 Andreas Jaeger <aj@arthur.rhein-neckar.de>
9 * wcsmbs/wcstold_l.c [__NO_LONG_DOUBLE_MATH]: Add prototype
10 declaration for ____wcstod_l_internal.
12 * stdlib/strtold.c [__NO_LONG_DOUBLE_MATH]: Include <stdlib.h> for
13 __strtod_internal prototype.
14 * stdlib/strtold_l.c [__NO_LONG_DOUBLE_MATH]
15 (____strtold_l_internal): Add prototype declaration.
16 (__strtold_l): Call correct function.
18 1999-02-24 Ulrich Drepper <drepper@cygnus.com>
20 * elf/elf.h: Add 32bit HPPA definitions.
22 1999-02-23 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
24 * malloc/malloc.c (mALLOC_SET_STATe): Handle the case where a
25 non-checked heap is restored when malloc checking was requested by
27 (struct malloc_state): Add using_malloc_checking.
28 (MALLOC_STATE_VERSION): Increment minor.
29 (using_malloc_checking, disallow_malloc_check): New variables.
30 (__malloc_check_init): Use them.
31 (mALLOC_GET_STATe): Use mALLOc to allocate the malloc_state, so
32 that it can the chunk is properly instrumented when malloc
33 checking is enabled. Set the new using_malloc_checking field.
34 (malloc_hook_ini): Correct signature when _LIBC is not defined.
36 1999-02-23 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
38 * sysdeps/unix/sysv/linux/i386/dl-librecon.h
39 (DISTINGUISH_LIB_VERSIONS): Don't relocate DT_STRTAB a second
42 * elf/rtld.c (dl_main): Rename paths_initialized to rtld_is_main.
43 Don't call elf_get_dynamic_info and _dl_setup_hash a second time
44 if ld.so is the main program.
46 1999-02-23 Ulrich Drepper <drepper@cygnus.com>
48 * stdio-common/vfprintf.c (vfprintf): If precision or width is too
49 large for work_buffer, allocate new buffer.
50 (printf_unknown): Likewise. [PR libc/988]
52 1999-02-22 Ulrich Drepper <drepper@cygnus.com>
54 * sysdeps/unix/sysv/linux/ttyname.c: Use __xstat and __fxstat
55 instead of stat and fstat.
56 * sysdeps/unix/sysv/linux/ttyname_r.c: Likewise.
58 1999-02-23 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
60 * elf/dl-error.c (_dl_signal_cerror): New function.
61 (_dl_signal_error): Don't call receiver function.
62 * elf/dl-lookup.c (_dl_lookup_symbol): Call _dl_signal_cerror
63 instead of _dl_signal_error when reporting references to undefined
65 (_dl_lookup_versioned_symbol): Likewise.
66 (_dl_lookup_versioned_symbol_skip): Likewise.
67 * elf/dl-version.c (match_symbol): Likewise.
69 * elf/ldsodefs.h: Declare _dl_signal_cerror.
71 1999-02-22 Ulrich Drepper <drepper@cygnus.com>
73 * misc/getttyent.c (getttyent): Release lock on stream later to
74 also protect global variable zapchar.
76 * sysdeps/unix/sysv/linux/clock.c: Don't test return value of
77 __times [PR libc/990].
79 1999-02-21 David S. Miller <davem@redhat.com>
81 * sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h: Fix
82 parentheses in Feb 2 changes.
83 * sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h: Likewise.
85 1999-02-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
87 * sysdeps/generic/glob.c (glob): Save previous errno.
89 1999-02-21 Ulrich Drepper <drepper@cygnus.com>
91 * sysdeps/generic/glob.c (glob): Enlarge buffers for reentrant
92 lookup functions if it is too small.
94 1999-02-20 Ulrich Drepper <drepper@cygnus.com>
96 * elf/dl-deps.c (_dl_map_object_deps): Don't add dummy objects created
97 for tracing to the scope lists.
98 * elf/do-lookup.h: Remove test for l_opencount == 0 after above change.
99 DT_SYMTAB is always available according to ELF spec.
101 * elf/dl-lookup.c (_dl_lookup_symbol_skip): Before first do_lookup
102 call test whether there is any scope left.
103 (_dl_lookup_versioned_symbol_skip): Likewise.
105 * elf/Makefile (distribute): Add do-lookup.h.
106 * elf/do-lookup.h: New file. Split out from dl-lookup.c.
107 * elf/dl-lookup.c: Move do_lookup function in separate file and
108 include the file twice, for handling versioning and without it.
110 * sysdeps/i386/dl-machine.h (elf_machine_runtime_setup): DT_PLTGOT
111 entry is already relocated.
112 * sysdeps/alpha/dl-machine.h (elf_machine_runtime_setup): Likewise.
113 * sysdeps/m68k/dl-machine.h (elf_machine_runtime_setup): Likewise.
114 * sysdeps/mips/dl-machine.h (elf_machine_runtime_setup): Likewise.
115 * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_runtime_setup):
117 * sysdeps/sparc/sparc64/dl-machine.h (elf_machine_runtime_setup):
119 * sysdeps/mips/mips64/dl-machine.h (elf_machine_runtime_setup):
122 * elf/dynamic-link.h (elf_get_dynamic_info): Take new argument with
123 load address. Relocate d_ptr in DT_DTRTAB, DT_SYMTAB, DT_RELA, DT_REL,
124 DT_JMPREL, DT_PLTGOT, and DT_VERSYM l_info entry.
125 (_ELF_DYNAMIC_DO_RELOC): Take extra argument which specifies whether
126 rel and rela relocations can both happen and skip one test if this
128 (ELF_DYNAMIC_DO_RELA, ELF_DYNAMIC_DO_REL): Call _ELF_DYNAMIC_DO_RELOC
130 * elf/dl-addr.c (_dl_addr): DT_SYMTAB and DT_STRTAB entries are
132 * elf/dl-deps.c (_dl_map_object_deps): DT_STRTAB entry is already
134 * elf/dl-load.c (_dl_init_paths): DT_STRTAB entry is already relocated.
135 (_dl_map_object_from_fd): Call elf_get_dynamic_info with new argument.
136 (_dl_map_object): DT_STRTAB entry is already relocated.
137 * elf/dl-lookup.c (do_lookup): DT_STRTAB and DT_SYMTAB entries are
139 * elf/dl-reloc.c (_dl_relocate_object): DT_STRTAB entry is already
141 * elf/dl-runtime.c (fixup): DT_SYMTAB, DT_STRTAB, DT_JMPREL, and
142 DT_VERSYM entries are already relocated.
143 (profile_fixup): Likewise.
144 * elf/dl-version.c: Rename VERSTAG macro into VERSYMIDX. Replace
146 (match_symbol): DT_STRTAB entry is already relocated.
147 (_dl_check_map_versions): Likewise. Also fo DT_VERSYM.
148 * elf/do-rel.h (elf_dynamic_do_rel): reladdr is now assumed to be
149 relocated already. DT_SYMTAB and DT_VERSYM entries are also relocated.
150 * elf/rtld.c (_dl_start): Pass extra argument to elf_get_dynamic_info.
151 (find_needed): DT_STRTAB entry is already relocated.
152 (dl_main): Pass extra argument to elf_get_dynamic_info.
153 DT_STRTAB entry is already relocated.
154 * sysdeps/alpha/dl-machine.h (elf_machine_fixup_plt): DT_JMPREL and
155 DT_PLTGOT entries are already relocated.
156 (elf_machine_rela): Likewise for DT_SYMTAB.
157 * sysdeps/arm/dl-machine.h (elf_machine_rel): DT_STRTAB is already
159 * sysdeps/i386/dl-machine.h (elf_machine_rel): Likewise.
160 * sysdeps/m68k/dl-machine.h (elf_machine_rela): Likewise.
161 * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela): Likewise.
162 * sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Likewise.
163 * sysdeps/powerpc/dl-machine.c (__process_machine_rela): Likewise.
164 * sysdeps/mips/dl-machine.h (elf_machine_got_rel): Likewise.
165 (elf_machine_got_rel): Likewise for DT_SYMTAB and DT_STRTAB.
166 * sysdeps/mips/mips64/dl-machine.h: Likewise.
168 * grp/initgroups.c (initgroups): If function in current module was
169 successful don't stop but continue to process to get all the groups.
171 * elf/dl-load.c (_dl_map_object_from_fd): Use global
172 _dl_pf_to_proot array to convert p_flags value.
173 * elf/dl-reloc.c (_dl_relocate_object): Likewise.
175 * elf/dynamic-link.h (elf_get_dynamic_info): Use memset instead of
176 loop to clear `info'.
178 * sysdeps/i386/i486/bits/string.h: If fill byte is constant let gcc
179 do the work and don't use inline assembler.
181 1999-02-19 Ulrich Drepper <drepper@cygnus.com>
183 * elf/ldsodefs.h (_dl_signal_error): Mark as __noreturn__.
184 * elf/dl-load.c (lose): Make it a function at the toplevel, mark as
185 noreturn, and prevent it from being inlined.
186 Define LOSE appropriately.
187 (_dl_map_object_from_fd): Compare all bytes in e_ident at once.
188 Optimize decoding of p_flags for certain platforms.
190 1999-02-19 Philip Blundell <pb@nexus.co.uk>
192 * Makeconfig (link-libc): When doing a static link, make sure that
193 libgcc.a is included both before and after libc.a.
195 1999-02-18 Thorsten Kukuk <kukuk@suse.de>
197 * nis/nss_compat/compat-spwd.c: Fix handling of default values for
198 sp_warn, sp_inact, sp_expire and sp_flag.
200 1999-02-18 Ulrich Drepper <drepper@cygnus.com>
202 * elf/link.h (link_map): Add l_dev and l_ino.
203 * elf/dl-load.c (_dl_map_object_from_fd): Test dev/ino of newly
204 loaded shared object with all laoded objects. Initialize l_ino
205 and l_dev in case it's new.
206 * elf/rtld.c (dl_main): Explain situation is l_dev/l_ino with main
208 * elf/Makefile: Compile and run new test.
209 * elf/multiload.c: New file.
211 * nss/nsswitch.h (service_user): Change name field from const char *
213 (name_database_entry): Likewise.
214 * nss/nsswitch.c (nss_parse_service_list): Adjust memory allocation
215 for change of `service_user'.
216 (nss_getline): Adjust memory allocation for change of
217 `name_database_entry'.
219 * catgets/catgets.c: Correctly handle NLSPATH from environment
222 * io/Makefile (routines): Add lock64.
223 * io/Versions: Add lockf64 for GLIBC_2.1.1.
224 * sysdeps/generic/lockf64.c: New file.
226 1999-02-16 Ulrich Drepper <drepper@cygnus.com>
228 * string/bits/string2.h: Only use strncmp optimization if count
229 argument is constant.
231 1999-02-16 Roland McGrath <roland@baalperazim.frob.com>
233 * sysdeps/mach/hurd/revoke.c: New file.
235 1999-02-16 Ulrich Drepper <drepper@cygnus.com>
237 * wctype/wctype.h (_ISwbit): Cast result of shift operations to
238 int to avoid warning about `ISO C restricts enumerator values to
241 1999-02-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
243 * elf/dlfcn.h: Fix typo.
244 * sysdeps/generic/bits/dlfcn.h: Likewise.
245 * sysdeps/mips/bits/dlfcn.h: Likewise.
247 1999-02-16 Ulrich Drepper <drepper@cygnus.com>
249 * sysdeps/i386/i486/bits/string.h (memcmp): Correctly set flags
252 * db2/Makefile (distribute): Add LICENSE.
254 1999-02-03 Jeff Bailey <jbailey@nisa.net>
256 * sysdeps/unix/make_errlist.c: Add i18n and copyright to
259 * sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c: Fix typo.
261 1999-02-16 Ulrich Drepper <drepper@cygnus.com>
263 * time/mktime.c: Use ISO C form for function definitions and
264 remove unnecessary prototypes.
266 * sysdeps/posix/getaddrinfo.c (getaddrinfo): Fix typo in last change.
268 * time/time.h: Avoid unneccesary #ifdef.
270 1999-02-15 Geoff Keating <geoffk@ozemail.com.au>
272 * stdio-common/_itoa.c (_itoa): Correct parameters to
275 1999-02-14 Andreas Jaeger <aj@arthur.rhein-neckar.de>
277 * misc/sys/cdefs.h: Undefine __PMT since it might be defined
278 before (e.g. in glob.h).
281 1999-02-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
283 * sysdeps/mips/fpu_control.h: Fix typo.
284 Patch by Sylvain Pion <Sylvain.Pion@sophia.inria.fr>.
287 1999-02-10 Roland McGrath <roland@baalperazim.frob.com>
289 * sysdeps/mach/hurd/pipe.c (__pipe): Don't call __socket_shutdown on
290 the "unused" ends of the sockets. Let pipes be bidirectional.
292 1999-02-15 Ulrich Drepper <drepper@cygnus.com>
294 * sysdeps/posix/getaddrinfo.c (getaddrinfo): Correct test for
297 1999-02-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
299 * manual/llio.texi (Waiting for I/O): Correct meaning. Patch by
300 Jochen Voss <voss@mathematik.uni-kl.de> [PR libc/969].
302 * manual/setjmp.texi (Non-Local Exits and Signals): Fix
303 typo. Patch by Jochen Voss <voss@mathematik.uni-kl.de> [PR libc/970].
305 1999-02-15 Ulrich Drepper <drepper@cygnus.com>
307 * string/Versions: Add __strverscmp to GLIBC_2.1.1.
309 1999-02-13 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
311 * misc/syslog.c (vsyslog): Remember errno for %m format. Fix
312 check for priority mask.
314 1999-02-14 Ulrich Drepper <drepper@cygnus.com>
316 * resolv/netdb.h (AI_NUMERICHOST): Change to 4.
317 Reported by Craig Metz <cmetz@inner.net> .
319 1999-02-14 Andreas Jaeger <aj@arthur.rhein-neckar.de>
321 * stdio-common/Makefile (tests): tllformat added.
323 * stdio-common/tllformat.c: New program, based on tiformat.c with
324 examples from Franz Sirl <Franz.Sirl-kernel@lauterbach.com>.
326 1999-02-14 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
328 * posix/test-vfork.c: Fix exit status test.
330 1999-02-14 Andreas Jaeger <aj@arthur.rhein-neckar.de>
332 * sysdeps/unix/sysv/linux/sa_len.c (__libc_sa_len): Add some
333 missing cases. Reported by Craig Metz <cmetz@inner.net> [PR libc/964].
335 1999-02-14 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
337 * sysdeps/m68k/fpu/s_modf.c: Optimized by using __m81_test instead
338 of separare explicit comparisons.
340 1999-02-11 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
342 * sysdeps/wordsize-64/inttypes.h: Always define ldiv_t if not yet
345 * sysdeps/wordsize-32/inttypes.h: Always define lldiv_t if not yet
348 1999-02-09 Ulrich Drepper <drepper@cygnus.com>
350 * po/el.po: Update from translation team.
352 1999-02-09 Andreas Jaeger <aj@arthur.rhein-neckar.de>
354 * intl/locale.alias: Fix slovenian entry [PR libc/948].
356 1999-02-09 Andreas Jaeger <aj@arthur.rhein-neckar.de>
358 * elf/sprof.c: assert.h isn't used anymore, remove inclusion.
359 * inet/ruserpass.c: Likewise.
360 * locale/programs/stringtrans.c: Likewise.
361 * locale/programs/localedef.c: Likewise.
362 * nscd/grpcache.c: Likewise.
363 * nss/nss_files/files-XXX.c: Likewise.
364 * stdlib/canonicalize.c: Likewise.
365 * sysdeps/posix/sigwait.c: Likewise.
367 1999-02-09 Andreas Jaeger <aj@arthur.rhein-neckar.de>
369 * sunrpc/pmap_rmt.c (clnt_broadcast): We need 32 bit comparison
370 even on 64 bit platforms.
372 * sunrpc/clnt_tcp.c (clnttcp_call): Likewise.
373 Patch by Loic Prylli <Loic.Prylli@ens-lyon.fr>.
375 1999-02-09 Ulrich Drepper <drepper@cygnus.com>
377 * intl/dcgettext.c: Include locale.h is available.
379 1999-02-08 Ulrich Drepper <drepper@cygnus.com>
381 * po/nl.po: Update from translation team.
383 * sysdeps/libm-i387/s_asinhf.S: Correct computing absolute value.
385 * Makefile: Allow calling goals for po subdir.
387 * sysdeps/unix/sysv/linux/alpha/bits/signum.h: Add missing RT
390 * po/el.po: New file.
392 1999-02-07 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
394 * elf/dl-load.c (_dl_map_object_from_fd): Replace magic constant
395 when processing DT_SYMBOLIC objects.
397 1999-02-07 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
399 * elf/dl-load.c (_dl_map_object_from_fd): When looking for the
400 program headers without PT_PHDR only require that they are
401 contained within one of the loaded segments. Don't use assert,
402 since that would be a bug in the object, not the dynamic linker.
404 1999-02-08 Richard Henderson <rth@cygnus.com>
406 * sysdeps/alpha/dl-machine.h (TRAMPOLINE_TEMPLATE): Save and
407 restore all call-clobbered fp regs.
409 1999-02-08 Ulrich Drepper <drepper@cygnus.com>
411 * po/cs.po: New file.
413 * resolv/res_hconf.c (_res_hconf_init): Don't use ENV_HOSTCONF for
416 1999-02-07 Ulrich Drepper <drepper@cygnus.com>
418 * signal/signal.h: Don't declare __libc_allocate_rtsig.
419 * include/signal.h: Declare __libc_allocate_rtsig here.
421 * elf/dl-lookup.c: Increment _dl_num_relocations in the four entry
422 point functions, not do_lookup since the later can be called more
425 1999-02-03 Jakub Jelinek <jj@ultra.linux.cz>
427 * sysdeps/generic/segfault.c: Add ADVANCE_STACK_FRAME
428 macro, so that architectures which need to add some special
429 offset to stack pointer can share this file.
431 * sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h: New file.
432 * sysdeps/unix/sysv/linux/sparc/sparc32/register-dump.h: New file.
433 * sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h: New file.
434 * sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h: New file.
436 * sysdeps/unix/sysv/linux/sparc/sparc32/bits/mman.h: Remove.
437 * sysdeps/unix/sysv/linux/sparc/sparc64/bits/mman.h: Remove.
438 * sysdeps/unix/sysv/linux/sparc/bits/mman.h: New file - common
439 between sparc32 and sparc64.
441 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: Remove.
442 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Remove.
443 * sysdeps/unix/sysv/linux/sparc/vfork.S: New file - common
444 between sparc32 and sparc64.
446 * sysdeps/unix/sysv/linux/sparc/sparc32/fork.S: Remove.
447 * sysdeps/unix/sysv/linux/sparc/sparc64/fork.S: Remove.
448 * sysdeps/unix/sysv/linux/sparc/fork.S: New file - common
449 between sparc32 and sparc64.
451 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.S: Remove.
452 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.S: Remove.
453 * sysdeps/unix/sysv/linux/sparc/sysdep.S: New file - common
454 between sparc32 and sparc64.
456 1999-02-07 Ulrich Drepper <drepper@cygnus.com>
458 * Versions.def: New version GLIBC_2.1.1 for libc.
459 * stdlib/Versions: Add _Exit, imaxdiv, and imaxdiv to GLIBC_2.1.1.
460 * stdlib/labs.c: Moved to...
461 * sysdeps/generic/labs.c: ...here.
462 * stdlib/llabs.c: Moved to...
463 * sysdeps/generic/llabs.c: ...here.
464 * stdlib/stdlib.h: Allow definition of ldiv_t and lldiv_t in other
465 header. Declare _Exit.
466 * sysdeps/generic/_exit.c: Add alias _Exit.
467 * sysdeps/mach/hurd/_exit.c: Likewise.
468 * sysdeps/standalone/i386/force_cpu386/_exit.c: Likewise.
469 * sysdeps/standalone/i960/nindy960/_exit.c: Likewise.
470 * sysdeps/standalone/m68k/m68020/mvme136/_exit.c: Likewise.
471 * sysdeps/unix/_exit.c: Likewise.
472 * sysdeps/wordsize-32/inttypes.h: Define imaxdiv_t and declare
473 imaxdiv and imaxabs. Declare lldiv_t if necessary.
474 * sysdeps/wordsize-64/inttypes.h: Likewise.
475 * sysdeps/wordsize-32/llabs.c: New file.
476 * sysdeps/wordsize-32/lldiv.c: New file.
477 * sysdeps/wordsize-64/labs.c: New file.
478 * sysdeps/wordsize-64/ldiv.c: New file.
479 * manual/arith.texi: Document imaxabs, imaxdiv_t, and imaxdiv.
480 * manual/startup.texi: Document _Exit.
482 1999-02-07 Andreas Jaeger <aj@arthur.rhein-neckar.de>
484 * nscd/cache.c: Include <arpa/inet.h> for inet_ntop.
486 1999-02-06 Ulrich Drepper <drepper@cygnus.com>
488 * Versions.def: Add versions for ld.so.
489 * csu/Versions: Remove __libc_stack_end here.
490 * elf/Versions: Split libc definitions in libc and ld.so definitions.
491 * elf/Makefile (ld-map): Change to ld.so.map.
492 * scripts/versions.awk: Recognize dot in library names.
494 * ctype/ctype.h: Remove definitions of __tolower and __toupper.
495 Don't use __tolower and __toupper in inline functions.
496 Add optimizing macros for tolower and toupper.
497 * ctype/ctype-extn.c (_tolower): Don't use __tolower.
498 (_toupper): Don't use __toupper.
499 * ctype/ctype.c (tolower): Don't use __tolower.
500 (toupper): Don't use toupper.
502 * nscd/cache.c (prune_cache): Correct printing of debugging messages.
504 * resolv/Versions (libresolv): Export __ns_name_unpack and
506 * resolv/res_comp.c: Rename ns_name_unpack to __ns_name_unpack and
507 make it global. Change all users. Similar for ns_name_ntop.
508 * resolv/nss_dns/dns-host.c: Don't use dn_expand when extracting in
509 user-provided buffer. Use __ns_name_unpack and __ns_name_ntop
510 directly to detect too small buffer.
511 * resolv/nss_dns/dns-network.c: Likewise.
513 * stdio-common/Makefile (tests): Add scanf12.
514 * stdio-common/scanf12.c: New file.
515 * stdio-common/scanf12.input: New file.
516 * stdio-common/vfscanf.c (__vfscanf): Handle +/- at beginning of
517 floating-point correctly if the number is invalid.
519 * stdio-common/vfscanf.c: Don't use non-reentrant multibyte conversion
521 * stdio-common/printf_fp.c: Likewise.
522 * stdio-common/printf_fphex.c: Likewise.
523 * stdio-common/vfprintf.c: Likewise.
526 See ChangeLog.9 for earlier changes.