htop-dev / htop

htop - an interactive process viewer
https://htop.dev/
GNU General Public License v2.0
6.52k stars 440 forks source link

segfault when compiling as static #503

Open divinity76 opened 3 years ago

divinity76 commented 3 years ago

observed on Ubuntu 20.04 AMD64, revision:

commit 3acf28c259f1a393badcc2e99c9646e19a911f98 (grafted, HEAD -> master, origin/master, origin/HEAD)
Author: Christian Göttsche <cgzones@googlemail.com>
Date:   Thu Jan 28 18:19:38 2021 +0100

    Unsupported: pass compilation

steps to reproduce:

git clone --depth 1 https://github.com/htop-dev/htop.git;
cd htop;
./autogen.sh;
./configure --enable-static --disable-unicode --disable-hwloc --disable-setuid --disable-sensors --disable-capabilities --disable-openvz --disable-vserver --disable-ancient-vserver --disable-delayacct --disable-linux-affinity;
make -j $(nproc);
./htop

result:

hans@xDevAd:~/reproduce$ git clone --depth 1 https://github.com/htop-dev/htop.git
Cloning into 'htop'...
remote: Enumerating objects: 218, done.
remote: Counting objects: 100% (218/218), done.
remote: Compressing objects: 100% (208/208), done.
remote: Total 218 (delta 51), reused 32 (delta 6), pack-reused 0
Receiving objects: 100% (218/218), 331.21 KiB | 1.31 MiB/s, done.
Resolving deltas: 100% (51/51), done.
hans@xDevAd:~/reproduce$ cd htop
Action.c                 AvailableColumnsPanel.h  ClockMeter.h     configure.ac     DateMeter.h            EnvScreen.c    HostnameMeter.c  InfoScreen.c        MainPanel.c    NetworkIOMeter.c   OptionItem.h          ProvideCurses.h  Settings.h      test_spec.lua  Vector.h
Action.h                 AvailableMetersPanel.c   ColorsPanel.c    CONTRIBUTING.md  DateTimeMeter.c        EnvScreen.h    HostnameMeter.h  InfoScreen.h        MainPanel.h    NetworkIOMeter.h   Panel.c               README           SignalsPanel.c  TraceScreen.c  XUtils.c
Affinity.c               AvailableMetersPanel.h   ColorsPanel.h    COPYING          DateTimeMeter.h        freebsd        htop.1.in        iwyu                Makefile.am    NEWS               Panel.h               README.md        SignalsPanel.h  TraceScreen.h  XUtils.h
Affinity.h               BatteryMeter.c           ColumnsPanel.c   CPUMeter.c       DiskIOMeter.c          FunctionBar.c  htop.c           linux               MemoryMeter.c  Object.c           Process.c             RichString.c     solaris         unsupported    zfs
AffinityPanel.c          BatteryMeter.h           ColumnsPanel.h   CPUMeter.h       DiskIOMeter.h          FunctionBar.h  htop.desktop     ListItem.c          MemoryMeter.h  Object.h           Process.h             RichString.h     SwapMeter.c     UptimeMeter.c
AffinityPanel.h          CategoriesPanel.c        CommandScreen.c  CRT.c            DisplayOptionsPanel.c  Hashtable.c    htop.png         ListItem.h          Meter.c        openbsd            ProcessList.c         ScreenManager.c  SwapMeter.h     UptimeMeter.h
AUTHORS                  CategoriesPanel.h        CommandScreen.h  CRT.h            DisplayOptionsPanel.h  Hashtable.h    htop.svg         LoadAverageMeter.c  Meter.h        OpenFilesScreen.c  ProcessList.h         ScreenManager.h  TasksMeter.c    UsersTable.c
autogen.sh               ChangeLog                Compat.c         darwin           docs                   Header.c       IncSet.c         LoadAverageMeter.h  MetersPanel.c  OpenFilesScreen.h  ProcessLocksScreen.c  scripts          TasksMeter.h    UsersTable.h
AvailableColumnsPanel.c  ClockMeter.c             Compat.h         DateMeter.c      dragonflybsd           Header.h       IncSet.h         Macros.h            MetersPanel.h  OptionItem.c       ProcessLocksScreen.h  Settings.c       TESTPLAN        Vector.c
hans@xDevAd:~/reproduce/htop$ ./autogen.sh 
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force --warnings=all 
autoreconf: configure.ac: tracing
autoreconf: configure.ac: creating directory build-aux
autoreconf: configure.ac: not using Libtool
autoreconf: running: /usr/bin/autoconf --force --warnings=all
autoreconf: running: /usr/bin/autoheader --force --warnings=all
autoreconf: running: automake --add-missing --copy --force-missing --warnings=all
configure.ac:57: installing 'build-aux/compile'
configure.ac:15: installing 'build-aux/config.guess'
configure.ac:15: installing 'build-aux/config.sub'
configure.ac:16: installing 'build-aux/install-sh'
configure.ac:16: installing 'build-aux/missing'
Makefile.am: installing './INSTALL'
Makefile.am: installing 'build-aux/depcomp'
autoreconf: Leaving directory `.'
hans@xDevAd:~/reproduce/htop$ ./configure --enable-static --disable-unicode --disable-hwloc --disable-setuid --disable-sensors --disable-capabilities --disable-openvz --disable-vserver --disable-ancient-vserver --disable-delayacct --disable-linux-affinity
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) gcc3
checking for gcc option to accept ISO C99... none needed
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking for ANSI C header files... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for unistd.h... (cached) yes
checking whether sys/types.h defines makedev... no
checking sys/mkdev.h usability... no
checking sys/mkdev.h presence... no
checking for sys/mkdev.h... no
checking sys/sysmacros.h usability... yes
checking sys/sysmacros.h presence... yes
checking for sys/sysmacros.h... yes
checking for sys/sysmacros.h... (cached) yes
checking execinfo.h usability... yes
checking execinfo.h presence... yes
checking for execinfo.h... yes
checking for pid_t... yes
checking for uid_t in sys/types.h... yes
checking for uint8_t... yes
checking for uint16_t... yes
checking for uint32_t... yes
checking for uint64_t... yes
checking for ceil in -lm... yes
checking for library containing clock_gettime... none required
checking for clock_gettime... yes
checking for faccessat... yes
checking for fstatat... yes
checking for host_get_clock_service... no
checking for openat... yes
checking for readlinkat... yes
checking for library containing backtrace... none required
checking for sd_bus_open_system in -lsystemd... no
checking for wnoutrefresh in -lncurses6... no
checking for wnoutrefresh in -lncurses... yes
checking curses.h usability... yes
checking curses.h presence... yes
checking for curses.h... yes
checking for library containing keypad... none required
checking for library containing Gpm_GetEvent... no
checking whether C compiler accepts -Wnull-dereference... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating htop.1
config.status: creating config.h
config.status: executing depfiles commands

  htop 3.0.6-dev

  platform:                  linux
  (Linux) proc directory:    /proc
  (Linux) openvz:            no
  (Linux) vserver:           no
  (Linux) ancient vserver:   no
  (Linux) affinity:          no
  (Linux) delay accounting:  no
  (Linux) sensors:           no
  (Linux) capabilities:      no
  unicode:                   no
  hwloc:                     no
  setuid:                    no
  debug:                     no
  static:                    yes

hans@xDevAd:~/reproduce/htop$ make -j $(nproc)
make  all-am
make[1]: Entering directory '/home/hans/reproduce/htop'
depbase=`echo Action.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT Action.o -MD -MP -MF $depbase.Tpo -c -o Action.o Action.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo Affinity.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT Affinity.o -MD -MP -MF $depbase.Tpo -c -o Affinity.o Affinity.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo AffinityPanel.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT AffinityPanel.o -MD -MP -MF $depbase.Tpo -c -o AffinityPanel.o AffinityPanel.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo AvailableColumnsPanel.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT AvailableColumnsPanel.o -MD -MP -MF $depbase.Tpo -c -o AvailableColumnsPanel.o AvailableColumnsPanel.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo AvailableMetersPanel.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT AvailableMetersPanel.o -MD -MP -MF $depbase.Tpo -c -o AvailableMetersPanel.o AvailableMetersPanel.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo BatteryMeter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT BatteryMeter.o -MD -MP -MF $depbase.Tpo -c -o BatteryMeter.o BatteryMeter.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo CategoriesPanel.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT CategoriesPanel.o -MD -MP -MF $depbase.Tpo -c -o CategoriesPanel.o CategoriesPanel.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo ClockMeter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT ClockMeter.o -MD -MP -MF $depbase.Tpo -c -o ClockMeter.o ClockMeter.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo ColorsPanel.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT ColorsPanel.o -MD -MP -MF $depbase.Tpo -c -o ColorsPanel.o ColorsPanel.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo ColumnsPanel.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT ColumnsPanel.o -MD -MP -MF $depbase.Tpo -c -o ColumnsPanel.o ColumnsPanel.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo CommandScreen.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT CommandScreen.o -MD -MP -MF $depbase.Tpo -c -o CommandScreen.o CommandScreen.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo Compat.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT Compat.o -MD -MP -MF $depbase.Tpo -c -o Compat.o Compat.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo CPUMeter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT CPUMeter.o -MD -MP -MF $depbase.Tpo -c -o CPUMeter.o CPUMeter.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo CRT.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT CRT.o -MD -MP -MF $depbase.Tpo -c -o CRT.o CRT.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo DateMeter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT DateMeter.o -MD -MP -MF $depbase.Tpo -c -o DateMeter.o DateMeter.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo DateTimeMeter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT DateTimeMeter.o -MD -MP -MF $depbase.Tpo -c -o DateTimeMeter.o DateTimeMeter.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo DiskIOMeter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT DiskIOMeter.o -MD -MP -MF $depbase.Tpo -c -o DiskIOMeter.o DiskIOMeter.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo DisplayOptionsPanel.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT DisplayOptionsPanel.o -MD -MP -MF $depbase.Tpo -c -o DisplayOptionsPanel.o DisplayOptionsPanel.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo EnvScreen.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT EnvScreen.o -MD -MP -MF $depbase.Tpo -c -o EnvScreen.o EnvScreen.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo FunctionBar.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT FunctionBar.o -MD -MP -MF $depbase.Tpo -c -o FunctionBar.o FunctionBar.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo Hashtable.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT Hashtable.o -MD -MP -MF $depbase.Tpo -c -o Hashtable.o Hashtable.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo Header.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT Header.o -MD -MP -MF $depbase.Tpo -c -o Header.o Header.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo HostnameMeter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT HostnameMeter.o -MD -MP -MF $depbase.Tpo -c -o HostnameMeter.o HostnameMeter.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo htop.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT htop.o -MD -MP -MF $depbase.Tpo -c -o htop.o htop.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo IncSet.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT IncSet.o -MD -MP -MF $depbase.Tpo -c -o IncSet.o IncSet.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo InfoScreen.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT InfoScreen.o -MD -MP -MF $depbase.Tpo -c -o InfoScreen.o InfoScreen.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo ListItem.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT ListItem.o -MD -MP -MF $depbase.Tpo -c -o ListItem.o ListItem.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo LoadAverageMeter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT LoadAverageMeter.o -MD -MP -MF $depbase.Tpo -c -o LoadAverageMeter.o LoadAverageMeter.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo MainPanel.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT MainPanel.o -MD -MP -MF $depbase.Tpo -c -o MainPanel.o MainPanel.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo MemoryMeter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT MemoryMeter.o -MD -MP -MF $depbase.Tpo -c -o MemoryMeter.o MemoryMeter.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo Meter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT Meter.o -MD -MP -MF $depbase.Tpo -c -o Meter.o Meter.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo MetersPanel.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT MetersPanel.o -MD -MP -MF $depbase.Tpo -c -o MetersPanel.o MetersPanel.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo NetworkIOMeter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT NetworkIOMeter.o -MD -MP -MF $depbase.Tpo -c -o NetworkIOMeter.o NetworkIOMeter.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo Object.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT Object.o -MD -MP -MF $depbase.Tpo -c -o Object.o Object.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo OpenFilesScreen.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT OpenFilesScreen.o -MD -MP -MF $depbase.Tpo -c -o OpenFilesScreen.o OpenFilesScreen.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo OptionItem.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT OptionItem.o -MD -MP -MF $depbase.Tpo -c -o OptionItem.o OptionItem.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo Panel.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT Panel.o -MD -MP -MF $depbase.Tpo -c -o Panel.o Panel.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo Process.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT Process.o -MD -MP -MF $depbase.Tpo -c -o Process.o Process.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo ProcessList.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT ProcessList.o -MD -MP -MF $depbase.Tpo -c -o ProcessList.o ProcessList.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo ProcessLocksScreen.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT ProcessLocksScreen.o -MD -MP -MF $depbase.Tpo -c -o ProcessLocksScreen.o ProcessLocksScreen.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo RichString.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT RichString.o -MD -MP -MF $depbase.Tpo -c -o RichString.o RichString.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo ScreenManager.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT ScreenManager.o -MD -MP -MF $depbase.Tpo -c -o ScreenManager.o ScreenManager.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo Settings.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT Settings.o -MD -MP -MF $depbase.Tpo -c -o Settings.o Settings.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo SignalsPanel.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT SignalsPanel.o -MD -MP -MF $depbase.Tpo -c -o SignalsPanel.o SignalsPanel.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo SwapMeter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT SwapMeter.o -MD -MP -MF $depbase.Tpo -c -o SwapMeter.o SwapMeter.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo TasksMeter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT TasksMeter.o -MD -MP -MF $depbase.Tpo -c -o TasksMeter.o TasksMeter.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo TraceScreen.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT TraceScreen.o -MD -MP -MF $depbase.Tpo -c -o TraceScreen.o TraceScreen.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo UptimeMeter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT UptimeMeter.o -MD -MP -MF $depbase.Tpo -c -o UptimeMeter.o UptimeMeter.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo UsersTable.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT UsersTable.o -MD -MP -MF $depbase.Tpo -c -o UsersTable.o UsersTable.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo Vector.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT Vector.o -MD -MP -MF $depbase.Tpo -c -o Vector.o Vector.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo XUtils.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT XUtils.o -MD -MP -MF $depbase.Tpo -c -o XUtils.o XUtils.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo linux/HugePageMeter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT linux/HugePageMeter.o -MD -MP -MF $depbase.Tpo -c -o linux/HugePageMeter.o linux/HugePageMeter.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo linux/IOPriorityPanel.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT linux/IOPriorityPanel.o -MD -MP -MF $depbase.Tpo -c -o linux/IOPriorityPanel.o linux/IOPriorityPanel.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo linux/LibSensors.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT linux/LibSensors.o -MD -MP -MF $depbase.Tpo -c -o linux/LibSensors.o linux/LibSensors.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo linux/LinuxProcess.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT linux/LinuxProcess.o -MD -MP -MF $depbase.Tpo -c -o linux/LinuxProcess.o linux/LinuxProcess.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo linux/LinuxProcessList.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT linux/LinuxProcessList.o -MD -MP -MF $depbase.Tpo -c -o linux/LinuxProcessList.o linux/LinuxProcessList.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo linux/Platform.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT linux/Platform.o -MD -MP -MF $depbase.Tpo -c -o linux/Platform.o linux/Platform.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo linux/PressureStallMeter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT linux/PressureStallMeter.o -MD -MP -MF $depbase.Tpo -c -o linux/PressureStallMeter.o linux/PressureStallMeter.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo linux/SELinuxMeter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT linux/SELinuxMeter.o -MD -MP -MF $depbase.Tpo -c -o linux/SELinuxMeter.o linux/SELinuxMeter.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo linux/SystemdMeter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT linux/SystemdMeter.o -MD -MP -MF $depbase.Tpo -c -o linux/SystemdMeter.o linux/SystemdMeter.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo linux/ZramMeter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT linux/ZramMeter.o -MD -MP -MF $depbase.Tpo -c -o linux/ZramMeter.o linux/ZramMeter.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo zfs/ZfsArcMeter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT zfs/ZfsArcMeter.o -MD -MP -MF $depbase.Tpo -c -o zfs/ZfsArcMeter.o zfs/ZfsArcMeter.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo zfs/ZfsArcStats.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT zfs/ZfsArcStats.o -MD -MP -MF $depbase.Tpo -c -o zfs/ZfsArcStats.o zfs/ZfsArcStats.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo zfs/ZfsCompressedArcMeter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG  -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -MT zfs/ZfsCompressedArcMeter.o -MD -MP -MF $depbase.Tpo -c -o zfs/ZfsCompressedArcMeter.o zfs/ZfsCompressedArcMeter.c &&\
mv -f $depbase.Tpo $depbase.Po
gcc -Wall -Wcast-align -Wcast-qual -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings -Wnull-dereference -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"/usr/local/etc\" -I"./linux" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -g -O2 -static -rdynamic  -static -o htop   Action.o Affinity.o AffinityPanel.o AvailableColumnsPanel.o AvailableMetersPanel.o BatteryMeter.o CategoriesPanel.o ClockMeter.o ColorsPanel.o ColumnsPanel.o CommandScreen.o Compat.o CPUMeter.o CRT.o DateMeter.o DateTimeMeter.o DiskIOMeter.o DisplayOptionsPanel.o EnvScreen.o FunctionBar.o Hashtable.o Header.o HostnameMeter.o htop.o IncSet.o InfoScreen.o ListItem.o LoadAverageMeter.o MainPanel.o MemoryMeter.o Meter.o MetersPanel.o NetworkIOMeter.o Object.o OpenFilesScreen.o OptionItem.o Panel.o Process.o ProcessList.o ProcessLocksScreen.o RichString.o ScreenManager.o Settings.o SignalsPanel.o SwapMeter.o TasksMeter.o TraceScreen.o UptimeMeter.o UsersTable.o Vector.o XUtils.o linux/HugePageMeter.o linux/IOPriorityPanel.o linux/LibSensors.o linux/LinuxProcess.o linux/LinuxProcessList.o linux/Platform.o linux/PressureStallMeter.o linux/SELinuxMeter.o linux/SystemdMeter.o linux/ZramMeter.o zfs/ZfsArcMeter.o zfs/ZfsArcStats.o zfs/ZfsCompressedArcMeter.o   -Wl,-Bsymbolic-functions -lncurses -ltinfo -lm  
/usr/bin/ld: Action.o: in function `Action_setUserOnly':
/home/hans/reproduce/htop/Action.c:113: warning: Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: UsersTable.o: in function `UsersTable_getRef':
/home/hans/reproduce/htop/UsersTable.c:35: warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
make[1]: Leaving directory '/home/hans/reproduce/htop'
hans@xDevAd:~/reproduce/htop$ ./htop

FATAL PROGRAM ERROR DETECTED
============================
Please check at https://htop.dev/issues whether this issue has already been reported.
If no similar issue has been reported before, please create a new issue with the following information:

- Your htop version (htop --version)
- Your OS and kernel version (uname -a)
- Your distribution and release (lsb_release -a)
- Likely steps to reproduce (How did it happened?)
- Backtrace of the issue (see below)

Error information:
------------------
A signal 11 (Segmentation fault) was received.

Backtrace information:
----------------------
The following function calls were active when the issue was detected:
---
[0x406bab]
[0x451280]
/lib/x86_64-linux-gnu/libc.so.6(getauxval+0x1b)[0x7ffff76bf14b]
/lib/x86_64-linux-gnu/libnss_systemd.so.2(+0x1285e)[0x7ffff740585e]
/lib/x86_64-linux-gnu/libnss_systemd.so.2(+0x12bca)[0x7ffff7405bca]
/lib/x86_64-linux-gnu/libnss_systemd.so.2(_nss_systemd_getpwuid_r+0x12e)[0x7ffff741d8ae]
[0x4aee53]
[0x4ae7eb]
[0x41493f]
[0x419b35]
[0x418c8b]
[0x41b21d]
[0x410c27]
[0x401fc4]
[0x441e70]
[0x4026de]
---

To make the above information more practical to work with,
you should provide a disassembly of your binary.
This can usually be done by running the following command:

   objdump -d -S -w `which htop` > ~/htop.objdump

Please include the generated file in your report.

Running this program with debug symbols or inside a debugger may provide further insights.

Thank you for helping to improve htop!

htop 3.0.6-dev aborting.

Segmentation fault (core dumped)
BenBE commented 3 years ago

Can you try to compile with debug symbols enabled? Doing so gives a better trace in the error message).

Given from the function that's active in the trace this is likely somewhere in UsersTable_getRef. Are you sure the compiled version matches the runtime glibc (cf. the linker warning)?

divinity76 commented 3 years ago

Can you try to compile with debug symbols enabled? Doing so gives a better trace in the error message).

if by debug symbols enabled you mean ./configure --enable-debug , seems that didn't change anything on the segfault output,

FATAL PROGRAM ERROR DETECTED
============================
Please check at https://htop.dev/issues whether this issue has already been reported.
If no similar issue has been reported before, please create a new issue with the following information:

- Your htop version (htop --version)
- Your OS and kernel version (uname -a)
- Your distribution and release (lsb_release -a)
- Likely steps to reproduce (How did it happened?)
- Backtrace of the issue (see below)

Error information:
------------------
A signal 11 (Segmentation fault) was received.

Backtrace information:
----------------------
The following function calls were active when the issue was detected:
---
[0x406d3b]
[0x453030]
/lib/x86_64-linux-gnu/libc.so.6(getauxval+0x1b)[0x7ffff76bf14b]
/lib/x86_64-linux-gnu/libnss_systemd.so.2(+0x1285e)[0x7ffff740585e]
/lib/x86_64-linux-gnu/libnss_systemd.so.2(+0x12bca)[0x7ffff7405bca]
/lib/x86_64-linux-gnu/libnss_systemd.so.2(_nss_systemd_getpwuid_r+0x12e)[0x7ffff741d8ae]
[0x4b0c03]
[0x4b059b]
[0x415a4f]
[0x41b7aa]
[0x41a996]
[0x41cf5b]
[0x411cbb]
[0x401fef]
[0x443c20]
[0x40275e]
---

To make the above information more practical to work with,
you should provide a disassembly of your binary.
This can usually be done by running the following command:

   objdump -d -S -w `which htop` > ~/htop.objdump

Please include the generated file in your report.

Running this program with debug symbols or inside a debugger may provide further insights.

Thank you for helping to improve htop!

htop 3.0.6-dev aborting.

Segmentation fault (core dumped)

Are you sure the compiled version matches the runtime glibc

nope, i don't know, not sure how to check, but in a static build, should it matter what the runtime glibc is?

BenBE commented 3 years ago

Can you try to compile with debug symbols enabled? Doing so gives a better trace in the error message).

if by debug symbols enabled you mean ./configure --enable-debug , seems that didn't change anything on the segfault output,

No. Was referring to providing -Og -g as CFLAGS/LDFLAGS to make, so that the resulting binary is debuggable. --enable-debug activates some internal housekeeping checks in htop to check the various memory operations work as intended.

Are you sure the compiled version matches the runtime glibc

nope, i don't know, not sure how to check, but in a static build, should it matter what the runtime glibc is?

Some of the called functions in glibc are dependent on structures that are created by different processes and communicated to the local process. This is most noticeable with things like PAM, but getpwuid which needs to talk to libnss is another example of this dependency. When running a dynamically linked program, the proper version of the functions, which can handle the talking to the other processes is loaded automatically. But for statically linked processes the version of the function used in the statically linked binary and other processes in the system may differ; thus causing all sorts of spurious issues.

divinity76 commented 3 years ago

btw have you (or anyone) tried to reproduce it?

seems compiling it with

./configure --enable-debug --enable-static --disable-unicode --disable-hwloc --disable-setuid --disable-sensors --disable-capabilities --disable-openvz --disable-vserver --disable-ancient-vserver --disable-delayacct --disable-linux-affinity;
make clean
CFLAGS="-Og -g" LDFLAGS="-Og -g" make -j $(nproc);

didn't make a difference, still got the same output,

FATAL PROGRAM ERROR DETECTED
============================
Please check at https://htop.dev/issues whether this issue has already been reported.
If no similar issue has been reported before, please create a new issue with the following information:

- Your htop version (htop --version)
- Your OS and kernel version (uname -a)
- Your distribution and release (lsb_release -a)
- Likely steps to reproduce (How did it happened?)
- Backtrace of the issue (see below)

Error information:
------------------
A signal 11 (Segmentation fault) was received.

Backtrace information:
----------------------
The following function calls were active when the issue was detected:
---
[0x406d3b]
[0x453030]
/lib/x86_64-linux-gnu/libc.so.6(getauxval+0x1b)[0x7ffff76bf14b]
/lib/x86_64-linux-gnu/libnss_systemd.so.2(+0x1285e)[0x7ffff740585e]
/lib/x86_64-linux-gnu/libnss_systemd.so.2(+0x12bca)[0x7ffff7405bca]
/lib/x86_64-linux-gnu/libnss_systemd.so.2(_nss_systemd_getpwuid_r+0x12e)[0x7ffff741d8ae]
[0x4b0c03]
[0x4b059b]
[0x415a4f]
[0x41b7aa]
[0x41a996]
[0x41cf5b]
[0x411cbb]
[0x401fef]
[0x443c20]
[0x40275e]
---

To make the above information more practical to work with,
you should provide a disassembly of your binary.
This can usually be done by running the following command:

   objdump -d -S -w `which htop` > ~/htop.objdump

Please include the generated file in your report.

Running this program with debug symbols or inside a debugger may provide further insights.

Thank you for helping to improve htop!

htop 3.0.6-dev aborting.

Segmentation fault (core dumped)
fasterit commented 3 years ago
./configure --enable-static --disable-unicode --disable-hwloc --disable-setuid --disable-sensors --disable-capabilities --disable-openvz --disable-vserver --disable-ancient-vserver --disable-delayacct --disable-linux-affinity
make -j $(nproc)
./htop

works here on Ubuntu 20.04.1 LTS, also AMD64

aka cannot reproduce

divinity76 commented 3 years ago

@fasterit thanks, can you upload the htop you produced? it'd be interesting to see if that same binary is crashing on my system or not

cgzones commented 3 years ago

Can reproduce on Debian sid with libnss-systemd installed and a service with DynamicUser=yes running:

Starting program: /home/christian/Coding/workspaces/htop/htop > run.txt
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
                                                    0x00007ffff7963350 in _nss_systemd_is_blocked () at ../src/nss-systemd/nss-systemd.c:639
639     ../src/nss-systemd/nss-systemd.c: No such file or directory.
(gdb) bt full
#0  0x00007ffff7963350 in _nss_systemd_is_blocked () at ../src/nss-systemd/nss-systemd.c:639
No locals.
#1  0x00007ffff7964507 in userdb_getpwuid (errnop=<synthetic pointer>, buflen=1024, buffer=0x5508b0 "", pwd=0x54c440 <resbuf>, uid=63378) at ../src/nss-systemd/userdb-glue.c:111
        hr = 0x0
        r = <optimized out>
        hr = <optimized out>
        r = <optimized out>
        __PRETTY_FUNCTION__ = {<optimized out> <repeats 16 times>}
#2  _nss_systemd_getpwuid_r (uid=63378, pwd=0x54c440 <resbuf>, buffer=0x5508b0 "", buflen=1024, errnop=0x54e300) at ../src/nss-systemd/nss-systemd.c:169
        status = <optimized out>
        e = <optimized out>
        _saved_errno_ = 0
        _saved_sigset = {__val = {0, 4919111, 8320808640339734111, 8387223540451861876, 32193032215689072, 4919047, 140737347416736, 94489280512, 6729072, 5292379, 5555264, 15912848161058534912, 5563136, 140737488343600, 0, 63232}}
        __PRETTY_FUNCTION__ = "_nss_systemd_getpwuid_r"
        _found = <optimized out>
        __assert_in_set = {<optimized out>, <optimized out>}
#3  0x00000000004aa713 in getpwuid_r ()
No symbol table info available.
#4  0x00000000004aa0c3 in getpwuid ()
No symbol table info available.
#5  0x0000000000415487 in UsersTable_getRef (this=0x550cc0, uid=63378) at UsersTable.c:35
        userData = <optimized out>
        name = <optimized out>
#6  0x000000000041ae6c in LinuxProcessList_recurseProcTree (this=0x550e50, parentFd=<optimized out>, dirname=<optimized out>, parent=0x0, period=279062.25, now=1612029284743) at linux/LinuxProcessList.c:1411
        pid = <optimized out>
        proc = <optimized out>
        procFd = 4
        command = "sleep\000lctl\000r\000events_unbound\000icient", '\000' <repeats 94 times>
        lasttimes = 0
        tty_nr = <optimized out>
        lp = <optimized out>
        percent_cpu = <optimized out>
        name = <optimized out>
        preExisting = false
        pl = 0x550e50
        entry = <optimized out>
        settings = 0x555ea0
        dirFd = 3
        dir = <optimized out>
        cpus = 4
        hideKernelThreads = true
        hideUserlandThreads = true
        errorReadingProcess = <optimized out>
        __PRETTY_FUNCTION__ = "LinuxProcessList_recurseProcTree"
#7  0x000000000041c563 in ProcessList_goThroughEntries (super=super@entry=0x550e50, pauseProcessUpdate=pauseProcessUpdate@entry=false) at linux/LinuxProcessList.c:1988
        this = 0x550e50
        settings = <optimized out>
        period = 279062.25
        tv = {tv_sec = 1612029284, tv_usec = 743522}
        now = <optimized out>
        rootFd = -100
#8  0x00000000004118af in ProcessList_scan (this=this@entry=0x550e50, pauseProcessUpdate=pauseProcessUpdate@entry=false) at ProcessList.c:572
        now = {tv_sec = 5599984, tv_nsec = 5901632}
        firstScanDone = true
#9  0x0000000000401edc in main (argc=<optimized out>, argv=<optimized out>) at htop.c:468
        lc_ctype = <optimized out>
        flags = {pidMatchList = 0x0, commFilter = 0x0, userId = <optimized out>, sortKey = 0, delay = -1, useColors = true, enableMouse = true, treeView = false, allowUnicode = <optimized out>, highlightChanges = <optimized out>, highlightDelaySecs = <optimized out>}
        ut = 0x550cc0
        pl = 0x550e50
        settings = 0x555ea0
        header = 0x5561c0
        panel = 0x7fffffffda50
        state = {settings = 0x555ea0, ut = 0x550cc0, pl = 0x550e50, panel = 0x5a0d40, header = 0x5561c0, pauseProcessUpdate = false, hideProcessSelection = false}
        scr = 0x5572f0
(gdb) quit
divinity76 commented 3 years ago

did it segfault in _nss_systemd_is_blocked() ? the only reference i could find to that function is https://github.com/systemd/systemd/blob/main/src/nss-systemd/nss-systemd.c

with _nss_systemd_is_blocked() defined as

_public_ bool _nss_systemd_is_blocked(void) {
        return _blocked > 0;
}

and _blocked defined as

static thread_local unsigned _blocked = 0;

uhm, may suggest that the pointer to the static thread_local somehow got messed up? (the static binary believes it's elsewhere, trying to read unallocated memory?)

anitazha commented 3 years ago

did it segfault in _nss_systemd_is_blocked() ? the only reference i could find to that function is https://github.com/systemd/systemd/blob/main/src/nss-systemd/nss-systemd.c

Hoping to provide some insight since I recently had to debug this issue for our containers running a statically linked binary that used nss-systemd. As I understand it, statically linked binaries do all of their thread local storage (TLS) allocations at the start of the program based on what was linked in. NSS modules are dlopen-ed so if they use TLS they do not get allocated in the statically linked binary scenario (hence the segfault when trying to access it).

One way to fix this is to rebuild systemd. You can add -mtls-dialect=gnu2 to gcc (on x86-64) when building systemd so that it uses the TLS descriptor method for TLS instead of the traditional TLS method. This changes the way the allocation works. Alternatively you can use the -ftls-model=initial-exec gcc flag which will use the traditional TLS method with the initial-exec TLS model. This ends up using the (limited) surplus space set aside for things like dlopen-ed shared objects using static TLS. You can also patch systemd by adding __attribute__ ((tls_model("initial-exec"))) to __blocked to achieve the same effect as -ftls-model=initial-exec. I went with TLS descriptors since https://www.google.com/search?q=%22dlopen:+cannot+load+any+more+object+with+static+TLS%22 suggests running out of surplus space is a real problem.

Another way to get around this is to remove "systemd" from /etc/nsswitch.conf on the system so that the statically linked binary doesn't try to use nss-systemd. This might not be an option if you actually need/want to use nss-systemd. It should also be possible to explicitly link against nss-systemd in the statically linked application so the thread-local from nss-systemd will have an allocation (but I haven't tried this).

Of course you can also try to fix this upstream. The commit introducing the thread local to nss-systemd is in https://github.com/systemd/systemd/commit/037b0a47b0d7df09d720dda6703135117e7e0472 which was relatively recent (systemd 246, so 2 versions ago). There could be a way to achieve the goals mentioned in that change without thread locals.

edit: -mtls-dialect=gnu2 doesn't seem to work for x32 until gcc 10 (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93319) and possibly also binutils 2.35 (https://sourceware.org/bugzilla/show_bug.cgi?id=25416). If that applies to anyone then adding __attribute__ ((tls_model("initial-exec"))) might be more universal.

jsalatiel commented 7 months ago

Also facing this trying to run htop static in a flatcar linux host

BenBE commented 7 months ago

Also facing this trying to run htop static in a flatcar linux host

Which version of htop did you run? AFAIR there was a commit recently that changed some aspects of building htop statically and might have had an influence on this issue.