Pádraig Brady wrote:
> > 
> > FAIL: tests/misc/stty-row-col
> > =============================
> 
> Any of the commands like `stty rows 40 columns 80` are being silently ignored.

'stty size' retrieves the info from an ioctl(1,TIOCGWINSZ) call and an
ioctl(0,TIOCGWINSZ) call. Even the value of environment variable COLUMNS
is ignored in this case (I have set COLUMNS=72, for testing).

The terminal in this case is a Solaris console, not a X11 based terminal
emulator.

Find attached the output of
  truss src/stty 2>&1 | tee truss.out
  truss -u a.out src/stty 2>&1 | tee truss-u.out

Btw, I find the output of the latter (call hierarchy within the main executable)
quite interesting; do we have a similar tool on Linux?

Bruno
execve("src/stty", 0x7FFFBFFFF908, 0x7FFFBFFFF920)  argc = 2
sysinfo(SI_MACHINE, "i86pc", 257)               = 6
mmap(0x00000000, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0) = 
0x7FFFBF6E5000
memcntl(0x7FFFBF400000, 103248, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
memcntl(0x00400000, 22352, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
getcwd("/export/home/bruno/coreutils-9.0.207-b411f-dirty/build-64", 1014) = 0
resolvepath("/export/home/bruno/coreutils-9.0.207-b411f-dirty/build-64/src/stty",
 "/export/home/bruno/coreutils-9.0.207-b411f-dirty/build-64/src/stty", 1023) = 
66
resolvepath("/usr/lib/amd64/ld.so.1", "/lib/amd64/ld.so.1", 1023) = 18
fstatat(AT_FDCWD, 
"/export/home/bruno/coreutils-9.0.207-b411f-dirty/build-64/src/stty", 
0x7FFFBFFFF4B0, 0) = 0
openat(AT_FDCWD, "/var/ld/64/ld.config", O_RDONLY) Err#2 ENOENT
fstatat(AT_FDCWD, "/lib/64/libc.so.1", 0x7FFFBFFFE4B0, 0) = 0
resolvepath("/lib/64/libc.so.1", "/lib/amd64/libc.so.1", 1023) = 20
openat(AT_FDCWD, "/lib/64/libc.so.1", O_RDONLY) = 3
mmapobj(3, MMOBJ_INTERPRET, 0x7FFFBF6E6F58, 0x7FFFBFFFE43C, 0x00000000) = 0
close(3)                                        = 0
memcntl(0x7FFFBEB00000, 790032, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
mmap(0x00010000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON|MAP_ALIGN, 
-1, 0) = 0x7FFFBF6D0000
getcontext(0x7FFFBFFFEEE0)
getrlimit(RLIMIT_STACK, 0x7FFFBFFFF240)         = 0
getpid()                                        = 28113 [28111]
lwp_private(0, 0, 0x7FFFBF6D2A40)               = 0x00000000
setustack(0x7FFFBF6D2AE8)
sigfillset(0x7FFFBEEACCF0)                      = 0
sysi86(SI86FPSTART, 0x7FFFBFFFF8AC, 0x0000133F, 0x00001F80) = 0x00000001
brk(0x00000000)                                 = 0x005194E8
brk(0x005194F0)                                 = 0x00000000
brk(0x0051D4F0)                                 = 0x00000000
openat(AT_FDCWD, "/usr/lib/locale/en_US.UTF-8/en_US.UTF-8", O_RDONLY) = 3
fstatat(3, NULL, 0x7FFFBFFFF110, 0)             = 0
mmap(0x00000000, 7300240, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7FFFBE400000
sysconfig(_CONFIG_PAGESIZE)                     = 4096
memcntl(0x7FFFBE400000, 7303168, MC_HAT_ADVISE, 0x7FFFBFFFEC30, 0, 0) = 0
fstatat(AT_FDCWD, "/usr/lib/locale/common/amd64/methods_unicode.so.3", 
0x7FFFBFFFE1B0, 0) = 0
resolvepath("/usr/lib/locale/common/amd64/methods_unicode.so.3", 
"/usr/lib/locale/common/amd64/methods_unicode.so.3", 1023) = 49
openat(AT_FDCWD, "/usr/lib/locale/common/amd64/methods_unicode.so.3", O_RDONLY) 
= 4
mmapobj(4, MMOBJ_INTERPRET, 0x7FFFBF6EC488, 0x7FFFBFFFE13C, 0x00000000) = 0
close(4)                                        = 0
memcntl(0x7FFFBF200000, 7336, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(3)                                        = 0
brk(0x0051D4F0)                                 = 0x00000000
brk(0x005214F0)                                 = 0x00000000
openat(AT_FDCWD, 
"/export/home/bruno/prefix64/share/locale/en_US.UTF-8/LC_MESSAGES/coreutils.mo",
 O_RDONLY) Err#2 ENOENT
openat(AT_FDCWD, 
"/export/home/bruno/prefix64/share/locale/en_US/LC_MESSAGES/coreutils.mo", 
O_RDONLY) Err#2 ENOENT
openat(AT_FDCWD, 
"/export/home/bruno/prefix64/share/locale/en/LC_MESSAGES/coreutils.mo", 
O_RDONLY) Err#2 ENOENT
ioctl(0, TCGETS, 0x00517400)                    = 0
ioctl(1, TIOCGWINSZ, 0x7FFFBFFFF7B8)            Err#22 EINVAL
ioctl(0, TIOCGWINSZ, 0x7FFFBFFFF798)            = 0
ioctl(1, TCGETA, 0x7FFFBFFFF530)                Err#22 EINVAL
fstatat(1, NULL, 0x7FFFBFFFF580, 0)             = 0
fstatat(1, NULL, 0x7FFFBFFFF4C0, 0)             = 0
34 80
write(1, " 3 4   8 0\n", 6)                     = 6
close(1)                                        = 0
close(2)                                        = 0
_exit(0)
execve("src/stty", 0x7FFFBFFFF908, 0x7FFFBFFFF920)  argc = 2
sysinfo(SI_MACHINE, "i86pc", 257)               = 6
mmap(0x00000000, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0) = 
0x7FFFBF6E5000
memcntl(0x7FFFBF400000, 103248, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
memcntl(0x00400000, 22352, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
getcwd("/export/home/bruno/coreutils-9.0.207-b411f-dirty/build-64", 1014) = 0
resolvepath("/export/home/bruno/coreutils-9.0.207-b411f-dirty/build-64/src/stty",
 "/export/home/bruno/coreutils-9.0.207-b411f-dirty/build-64/src/stty", 1023) = 
66
resolvepath("/usr/lib/amd64/ld.so.1", "/lib/amd64/ld.so.1", 1023) = 18
fstatat(AT_FDCWD, 
"/export/home/bruno/coreutils-9.0.207-b411f-dirty/build-64/src/stty", 
0x7FFFBFFFF4B0, 0) = 0
openat(AT_FDCWD, "/var/ld/64/ld.config", O_RDONLY) Err#2 ENOENT
fstatat(AT_FDCWD, "/lib/64/libc.so.1", 0x7FFFBFFFE4B0, 0) = 0
resolvepath("/lib/64/libc.so.1", "/lib/amd64/libc.so.1", 1023) = 20
openat(AT_FDCWD, "/lib/64/libc.so.1", O_RDONLY) = 3
mmapobj(3, MMOBJ_INTERPRET, 0x7FFFBF6E6F58, 0x7FFFBFFFE43C, 0x00000000) = 0
close(3)                                        = 0
memcntl(0x7FFFBEB00000, 790032, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
mmap(0x00010000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON|MAP_ALIGN, 
-1, 0) = 0x7FFFBF6D0000
getcontext(0x7FFFBFFFEEE0)
getrlimit(RLIMIT_STACK, 0x7FFFBFFFF240)         = 0
getpid()                                        = 28108 [28106]
lwp_private(0, 0, 0x7FFFBF6D2A40)               = 0x00000000
setustack(0x7FFFBF6D2AE8)
sigfillset(0x7FFFBEEACCF0)                      = 0
/1@1:   -> frame_dummy(0x7fffbeea26c0, 0x0, 0x0, 0x0, 0x10, 0x101010101010101)
/1@1:   -> register_tm_clones(0x7fffbeea26c0, 0x0, 0x0, 0x0, 0x10, 
0x101010101010101)
/1@1:   <- frame_dummy() = 0
/1@1:   -> __start_crt(0x2, 0x7fffbffff908, 0x7fffbffff920, 0x7fffbf432eb0, 
0x10, 0x101010101010101)
sysi86(SI86FPSTART, 0x7FFFBFFFF8AC, 0x0000133F, 0x00001F80) = 0x00000001
/1@1:     -> _init(0x29, 0x7fffbffff8ac, 0x0, 0x1f80, 0x10, 0x101010101010101)
/1@1:     <- _init() = 0x416d10
/1@1:   <- __start_crt() = 0
/1@1:   -> main(0x2, 0x7fffbffff908, 0x7fffbffff920, 0x1f80, 0x10, 
0x101010101010101)
/1@1:     -> set_program_name(0x7fffbffffade, 0x7fffbffff908, 0x7fffbffff920, 
0x1f80, 0x10, 0x101010101010101)
/1@1:     <- set_program_name() = 0x7fffbffffae1
brk(0x00000000)                                 = 0x005194E8
brk(0x005194F0)                                 = 0x00000000
brk(0x0051D4F0)                                 = 0x00000000
openat(AT_FDCWD, "/usr/lib/locale/en_US.UTF-8/en_US.UTF-8", O_RDONLY) = 3
fstatat(3, NULL, 0x7FFFBFFFF110, 0)             = 0
mmap(0x00000000, 7300240, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7FFFBE400000
sysconfig(_CONFIG_PAGESIZE)                     = 4096
memcntl(0x7FFFBE400000, 7303168, MC_HAT_ADVISE, 0x7FFFBFFFEC30, 0, 0) = 0
fstatat(AT_FDCWD, "/usr/lib/locale/common/amd64/methods_unicode.so.3", 
0x7FFFBFFFE1B0, 0) = 0
resolvepath("/usr/lib/locale/common/amd64/methods_unicode.so.3", 
"/usr/lib/locale/common/amd64/methods_unicode.so.3", 1023) = 49
openat(AT_FDCWD, "/usr/lib/locale/common/amd64/methods_unicode.so.3", O_RDONLY) 
= 4
mmapobj(4, MMOBJ_INTERPRET, 0x7FFFBF6EC488, 0x7FFFBFFFE13C, 0x00000000) = 0
close(4)                                        = 0
memcntl(0x7FFFBF200000, 7336, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(3)                                        = 0
brk(0x0051D4F0)                                 = 0x00000000
brk(0x005214F0)                                 = 0x00000000
/1@1:     -> rpl_getopt_long(0x2, 0x7fffbffff908, 0x40a54c, 0x405a40, 0x0, 0x10)
/1@1:       -> rpl_getopt_internal(0x2, 0x7fffbffff908, 0x40a54c, 0x405a40, 
0x0, 0x0)
/1@1:         -> _getopt_internal_r(0x2, 0x7fffbffff908, 0x40a54c, 0x405a40, 
0x0, 0x0)
/1@1:         <- _getopt_internal_r() = 1
/1@1:       <- rpl_getopt_internal() = 1
/1@1:     <- rpl_getopt_long() = 1
/1@1:     -> rpl_getopt_long(0x1, 0x7fffbffff910, 0x40a54c, 0x405a40, 0x0, 0x0)
/1@1:       -> rpl_getopt_internal(0x1, 0x7fffbffff910, 0x40a54c, 0x405a40, 
0x0, 0x0)
/1@1:         -> _getopt_internal_r(0x1, 0x7fffbffff910, 0x40a54c, 0x405a40, 
0x0, 0x0)
/1@1:         <- _getopt_internal_r() = 0xffffffff
/1@1:       <- rpl_getopt_internal() = 0xffffffff
/1@1:     <- rpl_getopt_long() = 0xffffffff
openat(AT_FDCWD, 
"/export/home/bruno/prefix64/share/locale/en_US.UTF-8/LC_MESSAGES/coreutils.mo",
 O_RDONLY) Err#2 ENOENT
openat(AT_FDCWD, 
"/export/home/bruno/prefix64/share/locale/en_US/LC_MESSAGES/coreutils.mo", 
O_RDONLY) Err#2 ENOENT
openat(AT_FDCWD, 
"/export/home/bruno/prefix64/share/locale/en/LC_MESSAGES/coreutils.mo", 
O_RDONLY) Err#2 ENOENT
/1@1:     -> apply_settings(0x1, 0x40a562, 0x7fffbffff908, 0x2, 0x517440, 
0x7fffbffff8af)
/1@1:     <- apply_settings() = 0
ioctl(0, TCGETS, 0x00517400)                    = 0
/1@1:     -> apply_settings(0x0, 0x40a562, 0x7fffbffff908, 0x2, 0x517400, 
0x7fffbffff8af)
/1@1:       -> screen_columns(0x7fffbffffae7, 0x40a51c, 0x4, 0x0, 0x0, 0x2)
ioctl(1, TIOCGWINSZ, 0x7FFFBFFFF7B8)            Err#22 EINVAL
/1@1:         -> xstrtol(0x7fffbffffc3e, 0x0, 0x0, 0x7fffbffff7b0, 0x407ba0, 
0x3d)
/1@1:         <- xstrtol() = 0
/1@1:       <- screen_columns() = 72
/1@1:       -> display_window_size(0x0, 0x40a562, 0x47, 0x48, 0x407ba0, 0x3d)
ioctl(0, TIOCGWINSZ, 0x7FFFBFFFF798)            = 0
/1@1:         -> wrapf(0x40a3cb, 0x22, 0x50, 0x48, 0x407ba0, 0x3d)
/1@1:           -> rpl_vasprintf(0x7fffbffff6a0, 0x40a3cb, 0x7fffbffff6a8, 
0x48, 0x407ba0, 0x3d)
/1@1:             -> vasnprintf(0x0, 0x7fffbffff678, 0x40a3cb, 0x7fffbffff6a8, 
0x407ba0, 0x3d)
/1@1:               -> printf_parse(0x40a3cb, 0x7fffbfffee20, 0x7fffbfffed30, 
0x7fffbffff6a8, 0x407ba0, 0x3d)
/1@1:               <- printf_parse() = 0
/1@1:               -> printf_fetchargs(0x7fffbffff6a8, 0x7fffbfffed30, 0x0, 
0x7fffbfffee40, 0x7fffbfffed30, 0xffffffffffffffff)
/1@1:               <- printf_fetchargs() = 0
/1@1:               -> rpl_malloc(0xc, 0x0, 0x0, 0x5, 0x0, 0x0)
/1@1:               <- rpl_malloc() = 0x519610
/1@1:               -> rpl_realloc(0x519610, 0x7, 0x40a3d1, 0x519616, 0x1, 0xa)
/1@1:               <- rpl_realloc() = 0x519610
/1@1:             <- vasnprintf() = 0x519610
/1@1:           <- rpl_vasprintf() = 6
ioctl(1, TCGETA, 0x7FFFBFFFF530)                Err#22 EINVAL
fstatat(1, NULL, 0x7FFFBFFFF580, 0)             = 0
fstatat(1, NULL, 0x7FFFBFFFF4C0, 0)             = 0
/1@1:         <- wrapf() = 0
/1@1:       <- display_window_size() = 0
/1@1:     <- apply_settings() = 0
/1@1:   <- main() = 0
/1@1:   -> close_stdout(0x7fffbeea4f00, 0x0, 0x0, 0x0, 0x6, 0x38203433)
/1@1:     -> close_stream(0x518940, 0x0, 0x0, 0x0, 0x6, 0x38203433)
34 80
write(1, " 3 4   8 0\n", 6)                     = 6
close(1)                                        = 0
/1@1:     <- close_stream() = 0
/1@1:     -> close_stream(0x5189c0, 0x0, 0x0, 0x0, 0x6, 0x38203433)
close(2)                                        = 0
/1@1:     <- close_stream() = 0
/1@1:   <- close_stdout() = 0
/1@1:   -> _fini(0x7fffbeea4c80, 0x0, 0x0, 0x0, 0x40, 0x101010101010101)
/1@1:   <- _fini() = 0
/1@1:   -> __do_global_dtors_aux(0x7fffbeea26c0, 0x0, 0x0, 0x0, 0x8, 
0x7fffbf6ec638)
/1@1:     -> deregister_tm_clones(0x7fffbeea26c0, 0x0, 0x0, 0x0, 0x8, 
0x7fffbf6ec638)
/1@1:     <- deregister_tm_clones() = 0x517378
/1@1:   <- __do_global_dtors_aux() = 0x517378
_exit(0)

Reply via email to