bug-ncurses
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

make always relinks the shared libraries


From: Sven Joachim
Subject: make always relinks the shared libraries
Date: Sat, 11 Aug 2018 09:34:51 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1.50 (gnu/linux)

Running make twice ought to do nothing in the second run, but if shared
libraries are enabled, they will always be relinked.  Example:

,----
| $ ./configure --with-shared --without-progs --without-tests && make
| [ output skipped ]
| $ make
| cd man && make DESTDIR="" RPATH_LIST="/usr/lib" all
| make[1]: Entering directory '/tmp/ncurses/man'
| make[1]: Nothing to be done for 'all'.
| make[1]: Leaving directory '/tmp/ncurses/man'
| cd include && make DESTDIR="" RPATH_LIST="/usr/lib" all
| make[1]: Entering directory '/tmp/ncurses/include'
| make[1]: Nothing to be done for 'all'.
| make[1]: Leaving directory '/tmp/ncurses/include'
| cd ncurses && make DESTDIR="" RPATH_LIST="/usr/lib" all
| make[1]: Entering directory '/tmp/ncurses/ncurses'
| linking ../lib/libncurses.so.6.1
| gcc  -O2 --param max-inline-insns-single=1200 -shared -Wl,-soname,`basename 
../lib/libncurses.so.6.1 .6.1`.6,-stats,-lc -o ../lib/libncurses.so.6.1 
../obj_s/hardscroll.o ../obj_s/hashmap.o ../obj_s/lib_addch.o 
../obj_s/lib_addstr.o ../obj_s/lib_beep.o ../obj_s/lib_bkgd.o 
../obj_s/lib_box.o ../obj_s/lib_chgat.o ../obj_s/lib_clear.o 
../obj_s/lib_clearok.o ../obj_s/lib_clrbot.o ../obj_s/lib_clreol.o 
../obj_s/lib_color.o ../obj_s/lib_colorset.o ../obj_s/lib_delch.o 
../obj_s/lib_delwin.o ../obj_s/lib_echo.o ../obj_s/lib_endwin.o 
../obj_s/lib_erase.o ../obj_s/lib_flash.o ../obj_s/lib_gen.o 
../obj_s/lib_getch.o ../obj_s/lib_getstr.o ../obj_s/lib_hline.o 
../obj_s/lib_immedok.o ../obj_s/lib_inchstr.o ../obj_s/lib_initscr.o 
../obj_s/lib_insch.o ../obj_s/lib_insdel.o ../obj_s/lib_insnstr.o 
../obj_s/lib_instr.o ../obj_s/lib_isendwin.o ../obj_s/lib_leaveok.o 
../obj_s/lib_mouse.o ../obj_s/lib_move.o ../obj_s/lib_mvcur.o 
../obj_s/lib_mvwin.o ../obj_s/lib_newterm.o ../obj_s/lib_newwin.o 
../obj_s/lib_nl.o ../obj_s/lib_overlay.o ../obj_s/lib_pad.o 
../obj_s/lib_printw.o ../obj_s/lib_redrawln.o ../obj_s/lib_refresh.o 
../obj_s/lib_restart.o ../obj_s/lib_scanw.o ../obj_s/lib_screen.o 
../obj_s/lib_scroll.o ../obj_s/lib_scrollok.o ../obj_s/lib_scrreg.o 
../obj_s/lib_set_term.o ../obj_s/lib_slk.o ../obj_s/lib_slkatr_set.o 
../obj_s/lib_slkatrof.o ../obj_s/lib_slkatron.o ../obj_s/lib_slkatrset.o 
../obj_s/lib_slkattr.o ../obj_s/lib_slkclear.o ../obj_s/lib_slkcolor.o 
../obj_s/lib_slkinit.o ../obj_s/lib_slklab.o ../obj_s/lib_slkrefr.o 
../obj_s/lib_slkset.o ../obj_s/lib_slktouch.o ../obj_s/lib_touch.o 
../obj_s/lib_tstp.o ../obj_s/lib_ungetch.o ../obj_s/lib_vidattr.o 
../obj_s/lib_vline.o ../obj_s/lib_wattroff.o ../obj_s/lib_wattron.o 
../obj_s/lib_winch.o ../obj_s/lib_window.o ../obj_s/nc_panel.o 
../obj_s/safe_sprintf.o ../obj_s/tty_update.o ../obj_s/varargs.o 
../obj_s/vsscanf.o ../obj_s/lib_freeall.o ../obj_s/expanded.o 
../obj_s/legacy_coding.o ../obj_s/lib_dft_fgbg.o ../obj_s/lib_print.o 
../obj_s/new_pair.o ../obj_s/resizeterm.o ../obj_s/use_screen.o 
../obj_s/use_window.o ../obj_s/wresize.o ../obj_s/access.o ../obj_s/add_tries.o 
../obj_s/alloc_ttype.o ../obj_s/codes.o ../obj_s/comp_captab.o 
../obj_s/comp_error.o ../obj_s/comp_hash.o ../obj_s/db_iterator.o 
../obj_s/doalloc.o ../obj_s/entries.o ../obj_s/fallback.o ../obj_s/free_ttype.o 
../obj_s/getenv_num.o ../obj_s/home_terminfo.o ../obj_s/init_keytry.o 
../obj_s/lib_acs.o ../obj_s/lib_baudrate.o ../obj_s/lib_cur_term.o 
../obj_s/lib_data.o ../obj_s/lib_has_cap.o ../obj_s/lib_kernel.o 
../obj_s/lib_keyname.o ../obj_s/lib_longname.o ../obj_s/lib_napms.o 
../obj_s/lib_options.o ../obj_s/lib_raw.o ../obj_s/lib_setup.o 
../obj_s/lib_termcap.o ../obj_s/lib_termname.o ../obj_s/lib_tgoto.o 
../obj_s/lib_ti.o ../obj_s/lib_tparm.o ../obj_s/lib_tputs.o 
../obj_s/lib_trace.o ../obj_s/lib_ttyflags.o ../obj_s/lib_twait.o 
../obj_s/name_match.o ../obj_s/names.o ../obj_s/obsolete.o 
../obj_s/read_entry.o ../obj_s/read_termcap.o ../obj_s/strings.o 
../obj_s/tries.o ../obj_s/trim_sgr0.o ../obj_s/unctrl.o ../obj_s/visbuf.o 
../obj_s/define_key.o ../obj_s/hashed_db.o ../obj_s/key_defined.o 
../obj_s/keybound.o ../obj_s/keyok.o ../obj_s/version.o -L../lib -ldl 
| /usr/bin/ld: total time in link: 0.057887
| cd ../lib && (ln -s -f libncurses.so.6.1 libncurses.so.6; ln -s -f 
libncurses.so.6 libncurses.so; )
| make[1]: Leaving directory '/tmp/ncurses/ncurses'
| cd panel && make DESTDIR="" RPATH_LIST="/usr/lib" all
| make[1]: Entering directory '/tmp/ncurses/panel'
| linking ../lib/libpanel.so.6.1
| gcc  -O2 --param max-inline-insns-single=1200 -shared -Wl,-soname,`basename 
../lib/libpanel.so.6.1 .6.1`.6,-stats,-lc -o ../lib/libpanel.so.6.1 
../obj_s/panel.o ../obj_s/p_above.o ../obj_s/p_below.o ../obj_s/p_bottom.o 
../obj_s/p_delete.o ../obj_s/p_hide.o ../obj_s/p_hidden.o ../obj_s/p_move.o 
../obj_s/p_new.o ../obj_s/p_replace.o ../obj_s/p_show.o ../obj_s/p_top.o 
../obj_s/p_update.o ../obj_s/p_user.o ../obj_s/p_win.o -L../lib -lncurses -ldl 
| /usr/bin/ld: total time in link: 0.023453
| cd ../lib && (ln -s -f libpanel.so.6.1 libpanel.so.6; ln -s -f libpanel.so.6 
libpanel.so; )
| make[1]: Leaving directory '/tmp/ncurses/panel'
| cd menu && make DESTDIR="" RPATH_LIST="/usr/lib" all
| make[1]: Entering directory '/tmp/ncurses/menu'
| linking ../lib/libmenu.so.6.1
| gcc  -O2 --param max-inline-insns-single=1200 -shared -Wl,-soname,`basename 
../lib/libmenu.so.6.1 .6.1`.6,-stats,-lc -o ../lib/libmenu.so.6.1 
../obj_s/m_attribs.o ../obj_s/m_cursor.o ../obj_s/m_driver.o 
../obj_s/m_format.o ../obj_s/m_global.o ../obj_s/m_hook.o ../obj_s/m_item_cur.o 
../obj_s/m_item_nam.o ../obj_s/m_item_new.o ../obj_s/m_item_opt.o 
../obj_s/m_item_top.o ../obj_s/m_item_use.o ../obj_s/m_item_val.o 
../obj_s/m_item_vis.o ../obj_s/m_items.o ../obj_s/m_new.o ../obj_s/m_opts.o 
../obj_s/m_pad.o ../obj_s/m_pattern.o ../obj_s/m_post.o ../obj_s/m_req_name.o 
../obj_s/m_scale.o ../obj_s/m_spacing.o ../obj_s/m_sub.o ../obj_s/m_userptr.o 
../obj_s/m_win.o -L../lib -lncurses -ldl 
| /usr/bin/ld: total time in link: 0.026481
| cd ../lib && (ln -s -f libmenu.so.6.1 libmenu.so.6; ln -s -f libmenu.so.6 
libmenu.so; )
| make[1]: Leaving directory '/tmp/ncurses/menu'
| cd form && make DESTDIR="" RPATH_LIST="/usr/lib" all
| make[1]: Entering directory '/tmp/ncurses/form'
| linking ../lib/libform.so.6.1
| gcc  -O2 --param max-inline-insns-single=1200 -shared -Wl,-soname,`basename 
../lib/libform.so.6.1 .6.1`.6,-stats,-lc -o ../lib/libform.so.6.1 
../obj_s/fld_arg.o ../obj_s/fld_attr.o ../obj_s/fld_current.o 
../obj_s/fld_def.o ../obj_s/fld_dup.o ../obj_s/fld_ftchoice.o 
../obj_s/fld_ftlink.o ../obj_s/fld_info.o ../obj_s/fld_just.o 
../obj_s/fld_link.o ../obj_s/fld_max.o ../obj_s/fld_move.o 
../obj_s/fld_newftyp.o ../obj_s/fld_opts.o ../obj_s/fld_pad.o 
../obj_s/fld_page.o ../obj_s/fld_stat.o ../obj_s/fld_type.o ../obj_s/fld_user.o 
../obj_s/frm_cursor.o ../obj_s/frm_data.o ../obj_s/frm_def.o 
../obj_s/frm_driver.o ../obj_s/frm_hook.o ../obj_s/frm_opts.o 
../obj_s/frm_page.o ../obj_s/frm_post.o ../obj_s/frm_req_name.o 
../obj_s/frm_scale.o ../obj_s/frm_sub.o ../obj_s/frm_user.o ../obj_s/frm_win.o 
../obj_s/fty_alnum.o ../obj_s/fty_alpha.o ../obj_s/fty_enum.o 
../obj_s/fty_generic.o ../obj_s/fty_int.o ../obj_s/fty_ipv4.o 
../obj_s/fty_num.o ../obj_s/fty_regex.o -L../lib -lncurses -ldl 
| /usr/bin/ld: total time in link: 0.029231
| cd ../lib && (ln -s -f libform.so.6.1 libform.so.6; ln -s -f libform.so.6 
libform.so; )
| make[1]: Leaving directory '/tmp/ncurses/form'
| cd misc && make DESTDIR="" RPATH_LIST="/usr/lib" all
| make[1]: Entering directory '/tmp/ncurses/misc'
| make[1]: Nothing to be done for 'all'.
| make[1]: Leaving directory '/tmp/ncurses/misc'
| cd c++ && make DESTDIR="" RPATH_LIST="/usr/lib" all
| make[1]: Entering directory '/tmp/ncurses/c++'
| make[1]: Nothing to be done for 'all'.
| make[1]: Leaving directory '/tmp/ncurses/c++'
`----

If "--without-progs --without-tests" is not specified, the result is
even worse since the programs are recompiled in the second make run.
This increases build times, invalidates stamp files and has caused
race conditions in the Debian build as noticed by Helmut Grohne in
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=903790.

Cheers,
       Sven



reply via email to

[Prev in Thread] Current Thread [Next in Thread]