| Cost | $0.035 |
| Total elapsed time | 3m1s |
| LLM inference time | 2m48s |
| Command execution time | 14s |
| Commands executed | 20 |
All details >
| Attempt ID | ki0nixf1g1z0b | Attempt group | run-16-09-22-05 |
| Revision | fb5c74bd2fee | AWS Instance | m8i.2xlarge |
| Start time | 2025-09-16T22:07:30.201Z | End time | 2025-09-16T22:10:32.105Z |
| Task | jq-static | Environment | ubuntu-22.04-amd64-offline |
| Model | | OpenRouter slug | openai/gpt-5-mini |
| Temperature | 1 | Explicit prompt caching | false |
| User msg after tool call | false | Max tool calls | 50 |
| Total timeout seconds | 900 | Single command timeout | 600 |
| Cost | $0.035 | Duration | 3m1s |
| LLM inference time | 2m48s | Command execution time | 14s |
| Final context tokens | 20,596 | Total output tokens | 5,188 |
| Output reasoning tokens | 3,840 | Messages | 43 |
| Assistant messages | 21 | User messages | 1 |
| System messages | 1 | Commands executed | 20 |
jq 1.8.1 is a command-line JSON utility for viewing and transforming JSON.
Project link: github.com/jqlang/jq
Task:
Compile and install statically-linked jq to a specific location.
Difficulties:
Static linking requires correctly configuring the build.
Environment:
Ubuntu 22.04 on amd64, without internet access.
You are a package-building specialist operating a Ubuntu 22.04 bash shell via one tool: run_terminal_cmd.
The current working directory of every run_terminal_cmd is /home/peter.
Execution rules:
- Always pass non-interactive flags for any command that could prompt (e.g., -y, --yes, DEBIAN_FRONTEND=noninteractive).
- Don't include any newlines in the command.
- The environment is offline, assume you have all the necessary tools already installed.
If you encounter any errors or issues while doing the user's request, you must fix them and continue the task.
At the end verify you did the user request correctly.
You are given a jq v1.8.1 source code at /home/peter/jq.tar.gz. Please compile the jq package and install it to /home/peter/result. Create a symlink from /home/peter/result/jq to the compiled jq binary. The binary should be statically linked.
Show reasoning
Exploring static linking options
I’m looking into a static build using the command: 'autoreconf -i && ./configure --disable-maintainer-mode --disable-shared LDFLAGS="-static" CFLAGS="-static -O2" LIBS="-lm"'. However, static linking might fail due to glibc dependencies. A typical option is to use '-static' and '-s', or perhaps switch to the musl toolchain for static linking. It’s unclear if musl and musl-gcc are installed in an offline environment. I’ll make sure to attempt this as instructed, focusing on the necessary tools.
compile-bench> tar -tzf /home/peter/jq.tar.gz | sed -n '1,200p' jq-1.8.1/
jq-1.8.1/jq.1
jq-1.8.1/configure
jq-1.8.1/config/
jq-1.8.1/config/test-driver
jq-1.8.1/config/config.sub
jq-1.8.1/config/ar-lib
jq-1.8.1/config/missing
jq-1.8.1/config/compile
jq-1.8.1/config/ltmain.sh
jq-1.8.1/config/m4/
jq-1.8.1/config/m4/find-func-no-libs2.m4
jq-1.8.1/config/m4/libtool.m4
jq-1.8.1/config/m4/find-func.m4
jq-1.8.1/config/m4/ltoptions.m4
jq-1.8.1/config/m4/ltsugar.m4
jq-1.8.1/config/m4/find-func-no-libs.m4
jq-1.8.1/config/m4/lt~obsolete.m4
jq-1.8.1/config/m4/ltversion.m4
jq-1.8.1/config/m4/misc.m4
jq-1.8.1/config/m4/check-math-func.m4
jq-1.8.1/config/depcomp
jq-1.8.1/config/config.guess
jq-1.8.1/config/install-sh
jq-1.8.1/config/ylwrap
jq-1.8.1/libjq.pc.in
jq-1.8.1/libjq.pc
jq-1.8.1/README.md
jq-1.8.1/jq.spec
jq-1.8.1/AUTHORS
jq-1.8.1/COPYING
jq-1.8.1/src/
jq-1.8.1/src/main.c
jq-1.8.1/src/jv_unicode.h
jq-1.8.1/src/jv.h
jq-1.8.1/src/builtin.jq
jq-1.8.1/src/jv_alloc.h
jq-1.8.1/src/parser.c
jq-1.8.1/src/execute.c
jq-1.8.1/src/parser.h
jq-1.8.1/src/jv_dtoa.c
jq-1.8.1/src/jv_print.c
jq-1.8.1/src/jv_dtoa_tsd.h
jq-1.8.1/src/builtin.h
jq-1.8.1/src/jv_thread.h
jq-1.8.1/src/lexer.h
jq-1.8.1/src/jv_dtoa_tsd.c
jq-1.8.1/src/jv_parse.c
jq-1.8.1/src/lexer.c
jq-1.8.1/src/opcode_list.h
jq-1.8.1/src/locfile.c
jq-1.8.1/src/linker.c
jq-1.8.1/src/lexer.l
jq-1.8.1/src/jv_dtoa.h
jq-1.8.1/src/jv_private.h
jq-1.8.1/src/linker.h
jq-1.8.1/src/exec_stack.h
jq-1.8.1/src/builtin.c
jq-1.8.1/src/version.h
jq-1.8.1/src/locfile.h
jq-1.8.1/src/compile.h
jq-1.8.1/src/jv_unicode.c
jq-1.8.1/src/compile.c
jq-1.8.1/src/util.c
jq-1.8.1/src/jq_test.c
jq-1.8.1/src/jv.c
jq-1.8.1/src/jq.h
jq-1.8.1/src/bytecode.c
jq-1.8.1/src/jv_aux.c
jq-1.8.1/src/inject_errors.c
[command output truncated]
jq-1.8.1/vendor/oniguruma/
jq-1.8.1/vendor/oniguruma/configure
jq-1.8.1/vendor/oniguruma/make_win.bat
jq-1.8.1/vendor/oniguruma/test-driver
jq-1.8.1/vendor/oniguruma/README.md
jq-1.8.1/vendor/oniguruma/AUTHORS
jq-1.8.1/vendor/oniguruma/doc/
jq-1.8.1/vendor/oniguruma/doc/API
jq-1.8.1/vendor/oniguruma/doc/FAQ.ja
jq-1.8.1/vendor/oniguruma/doc/CALLOUTS.API.ja
jq-1.8.1/vendor/oniguruma/doc/SYNTAX.md
jq-1.8.1/vendor/oniguruma/doc/CALLOUTS.BUILTIN
jq-1.8.1/vendor/oniguruma/doc/onig_syn_md.c
jq-1.8.1/vendor/oniguruma/doc/RE.ja
jq-1.8.1/vendor/oniguruma/doc/UNICODE_PROPERTIES
jq-1.8.1/vendor/oniguruma/doc/API.ja
jq-1.8.1/vendor/oniguruma/doc/CALLOUTS.BUILTIN.ja
jq-1.8.1/vendor/oniguruma/doc/RE
jq-1.8.1/vendor/oniguruma/doc/FAQ
jq-1.8.1/vendor/oniguruma/doc/CALLOUTS.API
jq-1.8.1/vendor/oniguruma/config.sub
jq-1.8.1/vendor/oniguruma/oniguruma.pc.cmake.in
jq-1.8.1/vendor/oniguruma/COPYING
jq-1.8.1/vendor/oniguruma/src/
jq-1.8.1/vendor/oniguruma/src/iso8859_3.c
jq-1.8.1/vendor/oniguruma/src/onig_init.c
jq-1.8.1/vendor/oniguruma/src/utf8.c
jq-1.8.1/vendor/oniguruma/src/iso8859_5.c
jq-1.8.1/vendor/oniguruma/src/config.h.win32
jq-1.8.1/vendor/oniguruma/src/reggnu.c
jq-1.8.1/vendor/oniguruma/src/regint.h
jq-1.8.1/vendor/oniguruma/src/regerror.c
jq-1.8.1/vendor/oniguruma/src/config.h.in
jq-1.8.1/vendor/oniguruma/src/iso8859_4.c
jq-1.8.1/vendor/oniguruma/src/regparse.c
jq-1.8.1/vendor/oniguruma/src/big5.c
jq-1.8.1/vendor/oniguruma/src/regposerr.c
jq-1.8.1/vendor/oniguruma/src/mktable.c
jq-1.8.1/vendor/oniguruma/src/euc_kr.c
jq-1.8.1/vendor/oniguruma/src/iso8859_6.c
jq-1.8.1/vendor/oniguruma/src/iso8859_14.c
jq-1.8.1/vendor/oniguruma/src/iso8859_7.c
jq-1.8.1/vendor/oniguruma/src/iso8859_13.c
jq-1.8.1/vendor/oniguruma/src/iso8859_10.c
jq-1.8.1/vendor/oniguruma/src/iso8859_2.c
jq-1.8.1/vendor/oniguruma/src/regexec.c
jq-1.8.1/vendor/oniguruma/src/iso8859_16.c
jq-1.8.1/vendor/oniguruma/src/euc_tw.c
jq-1.8.1/vendor/oniguruma/src/regparse.h
jq-1.8.1/vendor/oniguruma/src/unicode.c
jq-1.8.1/vendor/oniguruma/src/ascii.c
jq-1.8.1/vendor/oniguruma/src/koi8.c
jq-1.8.1/vendor/oniguruma/src/iso8859_11.c
jq-1.8.1/vendor/oniguruma/src/regext.c
jq-1.8.1/vendor/oniguruma/src/iso8859_1.c
jq-1.8.1/vendor/oniguruma/src/iso8859_15.c
jq-1.8.1/vendor/oniguruma/src/onigposix.h
jq-1.8.1/vendor/oniguruma/src/st.h
jq-1.8.1/vendor/oniguruma/src/utf32_le.c
jq-1.8.1/vendor/oniguruma/src/regversion.c
jq-1.8.1/vendor/oniguruma/src/unicode_egcb_data.c
jq-1.8.1/vendor/oniguruma/src/iso8859_8.c
jq-1.8.1/vendor/oniguruma/src/oniggnu.h
jq-1.8.1/vendor/oniguruma/src/unicode_fold_data.c
jq-1.8.1/vendor/oniguruma/src/unicode_property_data.c
jq-1.8.1/vendor/oniguruma/src/unicode_property_data_posix.c
jq-1.8.1/vendor/oniguruma/src/unicode_fold3_key.c
jq-1.8.1/vendor/oniguruma/src/st.c
jq-1.8.1/vendor/oniguruma/src/iso8859_9.c
↓ 141 lines
jq-1.8.1/ jq-1.8.1/jq.1 jq-1.8.1/configure jq-1.8.1/config/ jq-1.8.1/config/test-driver jq-1.8.1/config/config.sub jq-1.8.1/config/ar-lib jq-1.8.1/config/missing jq-1.8.1/config/compile jq-1.8.1/config/ltmain.sh jq-1.8.1/config/m4/ jq-1.8.1/config/m4/find-func-no-libs2.m4 jq-1.8.1/config/m4/libtool.m4 jq-1.8.1/config/m4/find-func.m4 jq-1.8.1/config/m4/ltoptions.m4 jq-1.8.1/config/m4/ltsugar.m4 jq-1.8.1/config/m4/find-func-no-libs.m4 jq-1.8.1/config/m4/lt~obsolete.m4 jq-1.8.1/config/m4/ltversion.m4 jq-1.8.1/config/m4/misc.m4 jq-1.8.1/config/m4/check-math-func.m4 jq-1.8.1/config/depcomp jq-1.8.1/config/config.guess jq-1.8.1/config/install-sh jq-1.8.1/config/ylwrap jq-1.8.1/libjq.pc.in jq-1.8.1/libjq.pc jq-1.8.1/README.md jq-1.8.1/jq.spec jq-1.8.1/AUTHORS jq-1.8.1/COPYING jq-1.8.1/src/ jq-1.8.1/src/main.c jq-1.8.1/src/jv_unicode.h jq-1.8.1/src/jv.h jq-1.8.1/src/builtin.jq jq-1.8.1/src/jv_alloc.h jq-1.8.1/src/parser.c jq-1.8.1/src/execute.c jq-1.8.1/src/parser.h jq-1.8.1/src/jv_dtoa.c jq-1.8.1/src/jv_print.c jq-1.8.1/src/jv_dtoa_tsd.h jq-1.8.1/src/builtin.h jq-1.8.1/src/jv_thread.h jq-1.8.1/src/lexer.h jq-1.8.1/src/jv_dtoa_tsd.c jq-1.8.1/src/jv_parse.c jq-1.8.1/src/lexer.c jq-1.8.1/src/opcode_list.h jq-1.8.1/src/locfile.c jq-1.8.1/src/linker.c jq-1.8.1/src/lexer.l jq-1.8.1/src/jv_dtoa.h jq-1.8.1/src/jv_private.h jq-1.8.1/src/linker.h jq-1.8.1/src/exec_stack.h jq-1.8.1/src/builtin.c jq-1.8.1/src/version.h jq-1.8.1/src/locfile.h jq-1.8.1/src/compile.h jq-1.8.1/src/jv_unicode.c jq-1.8.1/src/compile.c jq-1.8.1/src/util.c jq-1.8.1/src/jq_test.c jq-1.8.1/src/jv.c jq-1.8.1/src/jq.h jq-1.8.1/src/bytecode.c jq-1.8.1/src/jv_aux.c jq-1.8.1/src/inject_errors.c [command output truncated] jq-1.8.1/vendor/oniguruma/ jq-1.8.1/vendor/oniguruma/configure jq-1.8.1/vendor/oniguruma/make_win.bat jq-1.8.1/vendor/oniguruma/test-driver jq-1.8.1/vendor/oniguruma/README.md jq-1.8.1/vendor/oniguruma/AUTHORS jq-1.8.1/vendor/oniguruma/doc/ jq-1.8.1/vendor/oniguruma/doc/API jq-1.8.1/vendor/oniguruma/doc/FAQ.ja jq-1.8.1/vendor/oniguruma/doc/CALLOUTS.API.ja jq-1.8.1/vendor/oniguruma/doc/SYNTAX.md jq-1.8.1/vendor/oniguruma/doc/CALLOUTS.BUILTIN jq-1.8.1/vendor/oniguruma/doc/onig_syn_md.c jq-1.8.1/vendor/oniguruma/doc/RE.ja jq-1.8.1/vendor/oniguruma/doc/UNICODE_PROPERTIES jq-1.8.1/vendor/oniguruma/doc/API.ja jq-1.8.1/vendor/oniguruma/doc/CALLOUTS.BUILTIN.ja jq-1.8.1/vendor/oniguruma/doc/RE jq-1.8.1/vendor/oniguruma/doc/FAQ jq-1.8.1/vendor/oniguruma/doc/CALLOUTS.API jq-1.8.1/vendor/oniguruma/config.sub jq-1.8.1/vendor/oniguruma/oniguruma.pc.cmake.in jq-1.8.1/vendor/oniguruma/COPYING jq-1.8.1/vendor/oniguruma/src/ jq-1.8.1/vendor/oniguruma/src/iso8859_3.c jq-1.8.1/vendor/oniguruma/src/onig_init.c jq-1.8.1/vendor/oniguruma/src/utf8.c jq-1.8.1/vendor/oniguruma/src/iso8859_5.c jq-1.8.1/vendor/oniguruma/src/config.h.win32 jq-1.8.1/vendor/oniguruma/src/reggnu.c jq-1.8.1/vendor/oniguruma/src/regint.h jq-1.8.1/vendor/oniguruma/src/regerror.c jq-1.8.1/vendor/oniguruma/src/config.h.in jq-1.8.1/vendor/oniguruma/src/iso8859_4.c jq-1.8.1/vendor/oniguruma/src/regparse.c jq-1.8.1/vendor/oniguruma/src/big5.c jq-1.8.1/vendor/oniguruma/src/regposerr.c jq-1.8.1/vendor/oniguruma/src/mktable.c jq-1.8.1/vendor/oniguruma/src/euc_kr.c jq-1.8.1/vendor/oniguruma/src/iso8859_6.c jq-1.8.1/vendor/oniguruma/src/iso8859_14.c jq-1.8.1/vendor/oniguruma/src/iso8859_7.c jq-1.8.1/vendor/oniguruma/src/iso8859_13.c jq-1.8.1/vendor/oniguruma/src/iso8859_10.c jq-1.8.1/vendor/oniguruma/src/iso8859_2.c jq-1.8.1/vendor/oniguruma/src/regexec.c jq-1.8.1/vendor/oniguruma/src/iso8859_16.c jq-1.8.1/vendor/oniguruma/src/euc_tw.c jq-1.8.1/vendor/oniguruma/src/regparse.h jq-1.8.1/vendor/oniguruma/src/unicode.c jq-1.8.1/vendor/oniguruma/src/ascii.c jq-1.8.1/vendor/oniguruma/src/koi8.c jq-1.8.1/vendor/oniguruma/src/iso8859_11.c jq-1.8.1/vendor/oniguruma/src/regext.c jq-1.8.1/vendor/oniguruma/src/iso8859_1.c jq-1.8.1/vendor/oniguruma/src/iso8859_15.c jq-1.8.1/vendor/oniguruma/src/onigposix.h jq-1.8.1/vendor/oniguruma/src/st.h jq-1.8.1/vendor/oniguruma/src/utf32_le.c jq-1.8.1/vendor/oniguruma/src/regversion.c jq-1.8.1/vendor/oniguruma/src/unicode_egcb_data.c jq-1.8.1/vendor/oniguruma/src/iso8859_8.c jq-1.8.1/vendor/oniguruma/src/oniggnu.h jq-1.8.1/vendor/oniguruma/src/unicode_fold_data.c jq-1.8.1/vendor/oniguruma/src/unicode_property_data.c jq-1.8.1/vendor/oniguruma/src/unicode_property_data_posix.c jq-1.8.1/vendor/oniguruma/src/unicode_fold3_key.c jq-1.8.1/vendor/oniguruma/src/st.c jq-1.8.1/vendor/oniguruma/src/iso8859_9.c
compile-bench> tar -xzf /home/peter/jq.tar.gz -C /home/peter && cd /home/peter/jq-1.8.1 && grep -n "static" -R . || true ./Makefile.am:133:jq_LDFLAGS = -all-static
./config/compile:187: -static)
./config/ltmain.sh:2393: echo "enable static libraries"
./config/ltmain.sh:2395: echo "disable static libraries"
./config/ltmain.sh:3554: -shared | -static | -prefer-pic | -prefer-non-pic)
./config/ltmain.sh:3648: -static)
./config/ltmain.sh:3894: -shared do not build a '.o' file suitable for static linking
./config/ltmain.sh:3895: -static only build a '.o' file suitable for static linking
./config/ltmain.sh:3968: -all-static do not do any dynamic linking at all
./config/ltmain.sh:3995: -static do not do any dynamic linking of uninstalled libtool libraries
./config/ltmain.sh:3996: -static-libtool-libs
./config/ltmain.sh:4482: staticlibs=
./config/ltmain.sh:4490: # Do the static libraries later.
./config/ltmain.sh:4491: func_append staticlibs " $file"
./config/ltmain.sh:4606: # Maybe install the static library, too.
./config/ltmain.sh:4607: test -n "$old_library" && func_append staticlibs " $dir/$old_library"
./config/ltmain.sh:4626: staticdest=$func_lo2o_result
./config/ltmain.sh:4629: staticdest=$destfile
./config/ltmain.sh:4645: staticobj=$func_lo2o_result
./config/ltmain.sh:4646: func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
./config/ltmain.sh:4775: for file in $staticlibs; do
./config/ltmain.sh:5024:static void lt_syminit(void)
./config/ltmain.sh:5058:static const void *lt_preloaded_setup() {
./config/ltmain.sh:5071: *" -static "*) ;;
./config/ltmain.sh:5077: # pic_flag when linking with -static. The problem exists in
./config/ltmain.sh:5179: *ar\ archive*) # could be an import, or static
./config/ltmain.sh:5208: *) win32_libid_type="x86 archive static";;
./config/ltmain.sh:5897:static int lt_debug = 1;
./config/ltmain.sh:5899:static int lt_debug = 0;
./config/ltmain.sh:5914:static const char *nonnull (const char *s);
./config/ltmain.sh:5915:static const char *nonempty (const char *s);
./config/ltmain.sh:5973:static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
./config/ltmain.sh:5974:static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script";
./config/ltmain.sh:5975:static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug";
./config/ltmain.sh:6256: /* static buffer for getcwd */
./config/ltmain.sh:6447:static void
./config/ltmain.sh:6469:static const char *
./config/ltmain.sh:6475:static const char *
./config/ltmain.sh:6753: # even a static library is built. For now, we need to specify
./config/ltmain.sh:6755: # that all symbols are satisfied, otherwise we get a static library.
./config/ltmain.sh:6799: prefer_static_libs=no
./config/ltmain.sh:6815: # We need to know -static, to get the right output filenames.
./config/ltmain.sh:6825: -all-static | -static | -static-libtool-libs)
./config/ltmain.sh:6827: -all-static)
./config/ltmain.sh:6828: if
[command output truncated]
eq_check_truncation(struct jv_parser* p) {
./src/jv_parse.c:624:static int parse_is_top_num(struct jv_parser* p) {
./src/jv_parse.c:628:static int stream_is_top_num(struct jv_parser* p) {
./src/jv_parse.c:644:static pfunc scan(struct jv_parser* p, char ch, jv* out) {
./src/jv_parse.c:722:static const unsigned char UTF8_BOM[] = {0xEF,0xBB,0xBF};
./src/jv_parse.c:755:static jv make_error(struct jv_parser*, const char *, ...) JV_PRINTF_LIKE(2, 3);
./src/jv_parse.c:757:static jv make_error(struct jv_parser* p, const char *fmt, ...) {
./src/parser.y:165:static jv check_object_key(block k) {
./src/parser.y:175:static block gen_index(block obj, block key) {
./src/parser.y:179:static block gen_index_opt(block obj, block key) {
./src/parser.y:183:static block gen_slice_index(block obj, block start, block end, opcode idx_op) {
./src/parser.y:194:static block constant_fold(block a, block b, int op) {
./src/parser.y:225:static block gen_binop(block a, block b, int op) {
./src/parser.y:249:static block gen_format(block a, jv fmt) {
./src/parser.y:253:static block gen_definedor_assign(block object, block val) {
./src/parser.y:262:static block gen_update(block object, block val, int optype) {
./src/parser.y:273:static block gen_loc_object(location *loc, struct locfile *locations) {
./src/exec_stack.h:44:static size_t align_round_up(size_t sz) {
./src/exec_stack.h:56:static void stack_init(struct stack* s) {
./src/exec_stack.h:62:static void stack_reset(struct stack* s) {
./src/exec_stack.h:71:static int stack_pop_will_free(struct stack* s, stack_ptr p) {
./src/exec_stack.h:75:static void* stack_block(struct stack* s, stack_ptr p) {
./src/exec_stack.h:79:static stack_ptr* stack_block_next(struct stack* s, stack_ptr p) {
./src/exec_stack.h:83:static void stack_reallocate(struct stack* s, size_t sz) {
./src/exec_stack.h:95:static stack_ptr stack_push_block(struct stack* s, stack_ptr p, size_t sz) {
./src/exec_stack.h:106:static stack_ptr stack_pop_block(struct stack* s, stack_ptr p, size_t sz) {
./src/linker.c:29:static int load_library(jq_state *jq, jv lib_path,
./src/linker.c:34:static int path_is_relative(jv p) {
./src/linker.c:51:static jv build_lib_search_chain(jq_state *jq, jv search_path, jv jq_origin, jv lib_origin) {
./src/linker.c:94:static jv validate_relpath(jv name) {
./src/linker.c:125:static jv jv_basename(jv name) {
./src/linker.c:136:static jv find_lib(jq_state *jq, jv rel_path, jv search, const char *suffix, jv jq_origin, jv lib_origin) {
./src/linker.c:232:static jv default_search(jq_state *jq, jv value) {
./src/linker.c:244:static int process_dependencies(jq_state *jq, jv jq_origin, jv lib_origin, block *src_block, struct lib_loading_state *lib_state) {
./src/linker.c:331:static int load_library(jq_state *jq, jv lib_path, int is_data, int raw, int optional, const char *as, block *out_block, struct lib_loading_state *lib_state) {
./src/locfile.c:58:static int locfile_line_length(struct locfile* l, int line) {
↓ 83 lines
./Makefile.am:133:jq_LDFLAGS = -all-static
./config/compile:187: -static)
./config/ltmain.sh:2393: echo "enable static libraries"
./config/ltmain.sh:2395: echo "disable static libraries"
./config/ltmain.sh:3554: -shared | -static | -prefer-pic | -prefer-non-pic)
./config/ltmain.sh:3648: -static)
./config/ltmain.sh:3894: -shared do not build a '.o' file suitable for static linking
./config/ltmain.sh:3895: -static only build a '.o' file suitable for static linking
./config/ltmain.sh:3968: -all-static do not do any dynamic linking at all
./config/ltmain.sh:3995: -static do not do any dynamic linking of uninstalled libtool libraries
./config/ltmain.sh:3996: -static-libtool-libs
./config/ltmain.sh:4482: staticlibs=
./config/ltmain.sh:4490: # Do the static libraries later.
./config/ltmain.sh:4491: func_append staticlibs " $file"
./config/ltmain.sh:4606: # Maybe install the static library, too.
./config/ltmain.sh:4607: test -n "$old_library" && func_append staticlibs " $dir/$old_library"
./config/ltmain.sh:4626: staticdest=$func_lo2o_result
./config/ltmain.sh:4629: staticdest=$destfile
./config/ltmain.sh:4645: staticobj=$func_lo2o_result
./config/ltmain.sh:4646: func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
./config/ltmain.sh:4775: for file in $staticlibs; do
./config/ltmain.sh:5024:static void lt_syminit(void)
./config/ltmain.sh:5058:static const void *lt_preloaded_setup() {
./config/ltmain.sh:5071: *" -static "*) ;;
./config/ltmain.sh:5077: # pic_flag when linking with -static. The problem exists in
./config/ltmain.sh:5179: *ar\ archive*) # could be an import, or static
./config/ltmain.sh:5208: *) win32_libid_type="x86 archive static";;
./config/ltmain.sh:5897:static int lt_debug = 1;
./config/ltmain.sh:5899:static int lt_debug = 0;
./config/ltmain.sh:5914:static const char *nonnull (const char *s);
./config/ltmain.sh:5915:static const char *nonempty (const char *s);
./config/ltmain.sh:5973:static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
./config/ltmain.sh:5974:static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script";
./config/ltmain.sh:5975:static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug";
./config/ltmain.sh:6256: /* static buffer for getcwd */
./config/ltmain.sh:6447:static void
./config/ltmain.sh:6469:static const char *
./config/ltmain.sh:6475:static const char *
./config/ltmain.sh:6753: # even a static library is built. For now, we need to specify
./config/ltmain.sh:6755: # that all symbols are satisfied, otherwise we get a static library.
./config/ltmain.sh:6799: prefer_static_libs=no
./config/ltmain.sh:6815: # We need to know -static, to get the right output filenames.
./config/ltmain.sh:6825: -all-static | -static | -static-libtool-libs)
./config/ltmain.sh:6827: -all-static)
./config/ltmain.sh:6828: if
[command output truncated]
eq_check_truncation(struct jv_parser* p) {
./src/jv_parse.c:624:static int parse_is_top_num(struct jv_parser* p) {
./src/jv_parse.c:628:static int stream_is_top_num(struct jv_parser* p) {
./src/jv_parse.c:644:static pfunc scan(struct jv_parser* p, char ch, jv* out) {
./src/jv_parse.c:722:static const unsigned char UTF8_BOM[] = {0xEF,0xBB,0xBF};
./src/jv_parse.c:755:static jv make_error(struct jv_parser*, const char *, ...) JV_PRINTF_LIKE(2, 3);
./src/jv_parse.c:757:static jv make_error(struct jv_parser* p, const char *fmt, ...) {
./src/parser.y:165:static jv check_object_key(block k) {
./src/parser.y:175:static block gen_index(block obj, block key) {
./src/parser.y:179:static block gen_index_opt(block obj, block key) {
./src/parser.y:183:static block gen_slice_index(block obj, block start, block end, opcode idx_op) {
./src/parser.y:194:static block constant_fold(block a, block b, int op) {
./src/parser.y:225:static block gen_binop(block a, block b, int op) {
./src/parser.y:249:static block gen_format(block a, jv fmt) {
./src/parser.y:253:static block gen_definedor_assign(block object, block val) {
./src/parser.y:262:static block gen_update(block object, block val, int optype) {
./src/parser.y:273:static block gen_loc_object(location *loc, struct locfile *locations) {
./src/exec_stack.h:44:static size_t align_round_up(size_t sz) {
./src/exec_stack.h:56:static void stack_init(struct stack* s) {
./src/exec_stack.h:62:static void stack_reset(struct stack* s) {
./src/exec_stack.h:71:static int stack_pop_will_free(struct stack* s, stack_ptr p) {
./src/exec_stack.h:75:static void* stack_block(struct stack* s, stack_ptr p) {
./src/exec_stack.h:79:static stack_ptr* stack_block_next(struct stack* s, stack_ptr p) {
./src/exec_stack.h:83:static void stack_reallocate(struct stack* s, size_t sz) {
./src/exec_stack.h:95:static stack_ptr stack_push_block(struct stack* s, stack_ptr p, size_t sz) {
./src/exec_stack.h:106:static stack_ptr stack_pop_block(struct stack* s, stack_ptr p, size_t sz) {
./src/linker.c:29:static int load_library(jq_state *jq, jv lib_path,
./src/linker.c:34:static int path_is_relative(jv p) {
./src/linker.c:51:static jv build_lib_search_chain(jq_state *jq, jv search_path, jv jq_origin, jv lib_origin) {
./src/linker.c:94:static jv validate_relpath(jv name) {
./src/linker.c:125:static jv jv_basename(jv name) {
./src/linker.c:136:static jv find_lib(jq_state *jq, jv rel_path, jv search, const char *suffix, jv jq_origin, jv lib_origin) {
./src/linker.c:232:static jv default_search(jq_state *jq, jv value) {
./src/linker.c:244:static int process_dependencies(jq_state *jq, jv jq_origin, jv lib_origin, block *src_block, struct lib_loading_state *lib_state) {
./src/linker.c:331:static int load_library(jq_state *jq, jv lib_path, int is_data, int raw, int optional, const char *as, block *out_block, struct lib_loading_state *lib_state) {
./src/locfile.c:58:static int locfile_line_length(struct locfile* l, int line) {
Show reasoning
Evaluating static build process
I’ve extracted the files, and now I need to run ./configure with static flags. The Makefile.am indicates that jq_LDFLAGS should be set to -all-static. I also need to ensure that libjq is included statically during the build. There’s this vendor/oniguruma package too. It seems the configure script may look for libonig, but since vendor is included, the build system should be recognizing the oniguruma from there. I’ll check the configure script to see how to enable the vendor oniguruma. Searching for "onig" in configure might give me answers.
compile-bench> cd /home/peter/jq-1.8.1 && grep -n "onig" -R configure* || true configure:670:onig_LDFLAGS
configure:671:onig_CFLAGS
configure:860:with_oniguruma
configure:875:ac_subdirs_all='vendor/oniguruma'
configure:1538: --with-oniguruma=prefix try this for a non-standard install prefix of the
configure:1539: oniguruma library
configure:21190:# Check whether --with-oniguruma was given.
configure:21191:if test ${with_oniguruma+y}
configure:21193: withval=$with_oniguruma;
configure:21195: with_oniguruma=yes
configure:21199:onig_CFLAGS=
configure:21200:onig_LDFLAGS=
configure:21201:build_oniguruma=no
configure:21204:if test "x$with_oniguruma" != xno
configure:21209: if test "x$with_oniguruma" != xyes
configure:21212: if test "x$with_oniguruma" = xbuiltin
configure:21215: build_oniguruma=yes
configure:21219: onig_CFLAGS="-I${with_oniguruma}/include"
configure:21220: onig_LDFLAGS="-L${with_oniguruma}/lib"
configure:21225: if test "x$build_oniguruma" = xno
configure:21229: CFLAGS="$CFLAGS $onig_CFLAGS"
configure:21230: LDFLAGS="$LDFLAGS $onig_LDFLAGS"
configure:21231: as_ac_Header=`printf "%s\n" "ac_cv_header_"oniguruma.h"" | $as_tr_sh`
configure:21232:ac_fn_c_check_header_compile "$LINENO" ""oniguruma.h"" "$as_ac_Header" "$ac_includes_default"
configure:21235: { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for onig_version in -lonig" >&5
configure:21236:printf %s "checking for onig_version in -lonig... " >&6; }
configure:21237:if test ${ac_cv_lib_onig_onig_version+y}
configure:21242:LIBS="-lonig $LIBS"
configure:21249:char onig_version ();
configure:21253:return onig_version ();
configure:21260: ac_cv_lib_onig_onig_version=yes
configure:21262: ac_cv_lib_onig_onig_version=no
configure:21268:{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_onig_onig_version" >&5
configure:21269:printf "%s\n" "$ac_cv_lib_onig_onig_version" >&6; }
configure:21270:if test "x$ac_cv_lib_onig_onig_version" = xyes
configure:21274: LIBS="-lonig $LIBS"
configure:21281: if test "x$ac_cv_lib_onig_onig_version" != "xyes"
configure:21284: build_oniguruma=yes
configure:21285: { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Oniguruma was not found. Will use the packaged oniguruma." >&5
configure:21286:printf "%s\n" "$as_me: Oniguruma was not found. Will use the packaged oniguruma." >&6;}
configure:21291: if test "x$build_oniguruma" = xyes && test -f "${srcdir}/vendor/oniguruma/configure.ac"
configure:21294: onig_CFLAGS="-I${srcdir}/vendor/oniguruma/src"
configure:21295: onig_LDFLAGS="-L${srcdir}/vendor/oniguruma/src -Wl,-rpath,${libdir}"
configure:21296: subdirs="$subdirs vendor/oniguruma"
configure:21310: if test "x$build_oniguruma" = xyes; then
configure:21318: if test "x$with_oniguruma" != xno; then
configure.ac:240:AC_ARG_WITH([oniguruma],
configure.ac:241: [AS_HELP_STRING([--with-oniguruma=prefix],
configure.ac:242: [try this for a non-standard install prefix of the oniguruma library])], ,
configure.ac:243: [with_oniguruma=yes])
configure.ac:245:onig_CFLAGS=
configure.ac:246:onig_LDFLAGS=
configure.ac:247:build_oniguruma=no
configure.ac:248:AS_IF([test "x$with_oniguruma" != xno], [
configure.ac:251: AS_IF([test "x$with_oniguruma" != xyes], [
configure.ac:252: AS_IF([test "x$with_oniguruma" = xbuiltin], [
configure.ac:253: build_oniguruma=yes
configure.ac:255: onig_CFLAGS="-I${with_oniguruma}/include"
configure.ac:256: onig_LDFLAGS="-L${with_oniguruma}/lib"
configure.ac:259: AS_IF([test "x$build_oniguruma" = xno], [
configure.ac:261: CFLAGS="$CFLAGS $onig_CFLAGS"
configure.ac:262: LDFLAGS="$LDFLAGS $onig_LDFLAGS"
configure.ac:263: AC_CHECK_HEADER("oniguruma.h",
configure.ac:264: AC_CHECK_LIB([onig],[onig_version]))
configure.ac:266: AS_IF([test "x$ac_cv_lib_onig_onig_version" != "xyes"], [
configure.ac:267: build_oniguruma=yes
configure.ac:268: AC_MSG_NOTICE([Oniguruma was not found. Will use the packaged oniguruma.])
configure.ac:271: AS_IF([test "x$build_oniguruma" = xyes && test -f "${srcdir}/vendor/oniguruma/configure.ac" ], [
configure.ac:272: onig_CFLAGS="-I${srcdir}/vendor/oniguruma/src"
configure.ac:273: onig_LDFLAGS="-L${srcdir}/vendor/oniguruma/src -Wl,-rpath,${libdir}"
configure.ac:274: AC_CONFIG_SUBDIRS([vendor/oniguruma])
configure.ac:275: AC_DEFINE([HAVE_LIBONIG],1,[Define to 1 if the system includes libonig])
configure.ac:280:AC_SUBST(onig_CFLAGS)
configure.ac:281:AC_SUBST(onig_LDFLAGS)
configure.ac:283:AM_CONDITIONAL([BUILD_ONIGURUMA], [test "x$build_oniguruma" = xyes])
configure.ac:284:AM_CONDITIONAL([WITH_ONIGURUMA], [test "x$with_oniguruma" != xno])
↓ 77 lines
configure:670:onig_LDFLAGS
configure:671:onig_CFLAGS
configure:860:with_oniguruma
configure:875:ac_subdirs_all='vendor/oniguruma'
configure:1538: --with-oniguruma=prefix try this for a non-standard install prefix of the
configure:1539: oniguruma library
configure:21190:# Check whether --with-oniguruma was given.
configure:21191:if test ${with_oniguruma+y}
configure:21193: withval=$with_oniguruma;
configure:21195: with_oniguruma=yes
configure:21199:onig_CFLAGS=
configure:21200:onig_LDFLAGS=
configure:21201:build_oniguruma=no
configure:21204:if test "x$with_oniguruma" != xno
configure:21209: if test "x$with_oniguruma" != xyes
configure:21212: if test "x$with_oniguruma" = xbuiltin
configure:21215: build_oniguruma=yes
configure:21219: onig_CFLAGS="-I${with_oniguruma}/include"
configure:21220: onig_LDFLAGS="-L${with_oniguruma}/lib"
configure:21225: if test "x$build_oniguruma" = xno
configure:21229: CFLAGS="$CFLAGS $onig_CFLAGS"
configure:21230: LDFLAGS="$LDFLAGS $onig_LDFLAGS"
configure:21231: as_ac_Header=`printf "%s\n" "ac_cv_header_"oniguruma.h"" | $as_tr_sh`
configure:21232:ac_fn_c_check_header_compile "$LINENO" ""oniguruma.h"" "$as_ac_Header" "$ac_includes_default"
configure:21235: { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for onig_version in -lonig" >&5
configure:21236:printf %s "checking for onig_version in -lonig... " >&6; }
configure:21237:if test ${ac_cv_lib_onig_onig_version+y}
configure:21242:LIBS="-lonig $LIBS"
configure:21249:char onig_version ();
configure:21253:return onig_version ();
configure:21260: ac_cv_lib_onig_onig_version=yes
configure:21262: ac_cv_lib_onig_onig_version=no
configure:21268:{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_onig_onig_version" >&5
configure:21269:printf "%s\n" "$ac_cv_lib_onig_onig_version" >&6; }
configure:21270:if test "x$ac_cv_lib_onig_onig_version" = xyes
configure:21274: LIBS="-lonig $LIBS"
configure:21281: if test "x$ac_cv_lib_onig_onig_version" != "xyes"
configure:21284: build_oniguruma=yes
configure:21285: { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Oniguruma was not found. Will use the packaged oniguruma." >&5
configure:21286:printf "%s\n" "$as_me: Oniguruma was not found. Will use the packaged oniguruma." >&6;}
configure:21291: if test "x$build_oniguruma" = xyes && test -f "${srcdir}/vendor/oniguruma/configure.ac"
configure:21294: onig_CFLAGS="-I${srcdir}/vendor/oniguruma/src"
configure:21295: onig_LDFLAGS="-L${srcdir}/vendor/oniguruma/src -Wl,-rpath,${libdir}"
configure:21296: subdirs="$subdirs vendor/oniguruma"
configure:21310: if test "x$build_oniguruma" = xyes; then
configure:21318: if test "x$with_oniguruma" != xno; then
configure.ac:240:AC_ARG_WITH([oniguruma],
configure.ac:241: [AS_HELP_STRING([--with-oniguruma=prefix],
configure.ac:242: [try this for a non-standard install prefix of the oniguruma library])], ,
configure.ac:243: [with_oniguruma=yes])
configure.ac:245:onig_CFLAGS=
configure.ac:246:onig_LDFLAGS=
configure.ac:247:build_oniguruma=no
configure.ac:248:AS_IF([test "x$with_oniguruma" != xno], [
configure.ac:251: AS_IF([test "x$with_oniguruma" != xyes], [
configure.ac:252: AS_IF([test "x$with_oniguruma" = xbuiltin], [
configure.ac:253: build_oniguruma=yes
configure.ac:255: onig_CFLAGS="-I${with_oniguruma}/include"
configure.ac:256: onig_LDFLAGS="-L${with_oniguruma}/lib"
configure.ac:259: AS_IF([test "x$build_oniguruma" = xno], [
configure.ac:261: CFLAGS="$CFLAGS $onig_CFLAGS"
configure.ac:262: LDFLAGS="$LDFLAGS $onig_LDFLAGS"
configure.ac:263: AC_CHECK_HEADER("oniguruma.h",
configure.ac:264: AC_CHECK_LIB([onig],[onig_version]))
configure.ac:266: AS_IF([test "x$ac_cv_lib_onig_onig_version" != "xyes"], [
configure.ac:267: build_oniguruma=yes
configure.ac:268: AC_MSG_NOTICE([Oniguruma was not found. Will use the packaged oniguruma.])
configure.ac:271: AS_IF([test "x$build_oniguruma" = xyes && test -f "${srcdir}/vendor/oniguruma/configure.ac" ], [
configure.ac:272: onig_CFLAGS="-I${srcdir}/vendor/oniguruma/src"
configure.ac:273: onig_LDFLAGS="-L${srcdir}/vendor/oniguruma/src -Wl,-rpath,${libdir}"
configure.ac:274: AC_CONFIG_SUBDIRS([vendor/oniguruma])
configure.ac:275: AC_DEFINE([HAVE_LIBONIG],1,[Define to 1 if the system includes libonig])
configure.ac:280:AC_SUBST(onig_CFLAGS)
configure.ac:281:AC_SUBST(onig_LDFLAGS)
configure.ac:283:AM_CONDITIONAL([BUILD_ONIGURUMA], [test "x$build_oniguruma" = xyes])
configure.ac:284:AM_CONDITIONAL([WITH_ONIGURUMA], [test "x$with_oniguruma" != xno])
133:jq_LDFLAGS = -all-static
compile-bench> cd /home/peter/jq-1.8.1 && ./configure --disable-maintainer-mode --prefix=/home/peter/result CFLAGS='-O2 -static' LDFLAGS='-static -s' LIBS='-lm -lpthread' --with-oniguruma=builtin 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 the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc understands -c and -o together... yes
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for wchar.h... yes
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether _XOPEN_SOURCE should be defined... no
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports the include directive... yes (GNU style)
checking whether make supports nested variables... yes
checking dependency style of gcc... gcc3
checking whether make supports nested variables... (cached) yes
checking for ar... ar
checking the archiver (ar) interface... ar
checking whether to enable maintainer-specific portions of Makefiles... no
checking for gcc... (cached) gcc
checking whether the compiler supports GNU C... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to enable C11 features... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking how to run the C preprocessor... gcc -E
checking for bison... no
checking for byacc... no
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for file... file
checking for objdump... objdump
checking
[command output truncated]
/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for file... file
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... no
checking if : is a manifest tool... no
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether make sets $(MAKE)... (cached) yes
checking for sys/time.h... yes
checking for unistd.h... (cached) yes
checking for sys/times.h... yes
checking size of int... 4
checking size of long... 8
checking size of long long... 8
checking size of void*... 8
checking for size_t... yes
checking for working alloca.h... yes
checking for alloca... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating test/Makefile
config.status: creating sample/Makefile
config.status: creating onig-config
config.status: creating src/config.h
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing default commands
↓ 133 lines
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 the compiler supports GNU C... yes checking whether gcc accepts -g... yes checking for gcc option to enable C11 features... none needed checking whether gcc understands -c and -o together... yes checking for stdio.h... yes checking for stdlib.h... yes checking for string.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for strings.h... yes checking for sys/stat.h... yes checking for sys/types.h... yes checking for unistd.h... yes checking for wchar.h... yes checking for minix/config.h... no checking whether it is safe to define __EXTENSIONS__... yes checking whether _XOPEN_SOURCE should be defined... no checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a race-free mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports the include directive... yes (GNU style) checking whether make supports nested variables... yes checking dependency style of gcc... gcc3 checking whether make supports nested variables... (cached) yes checking for ar... ar checking the archiver (ar) interface... ar checking whether to enable maintainer-specific portions of Makefiles... no checking for gcc... (cached) gcc checking whether the compiler supports GNU C... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to enable C11 features... (cached) none needed checking whether gcc understands -c and -o together... (cached) yes checking how to run the C preprocessor... gcc -E checking for bison... no checking for byacc... no checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking how to print strings... printf checking for a sed that does not truncate output... /usr/bin/sed checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for fgrep... /usr/bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for file... file checking for objdump... objdump checking [command output truncated] /usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for file... file checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /usr/bin/dd checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1 checking for mt... no checking if : is a manifest tool... no checking for stdio.h... yes checking for stdlib.h... yes checking for string.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for strings.h... yes checking for sys/stat.h... yes checking for sys/types.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking whether make sets $(MAKE)... (cached) yes checking for sys/time.h... yes checking for unistd.h... (cached) yes checking for sys/times.h... yes checking size of int... 4 checking size of long... 8 checking size of long long... 8 checking size of void*... 8 checking for size_t... yes checking for working alloca.h... yes checking for alloca... yes checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating src/Makefile config.status: creating test/Makefile config.status: creating sample/Makefile config.status: creating onig-config config.status: creating src/config.h config.status: executing depfiles commands config.status: executing libtool commands config.status: executing default commands
Show reasoning
I'm ready to move forward with the build process. I need to run the command make -j$(nproc) to compile everything, including vendor/oniguruma. It's important to use the exact syntax here. My environment is offline, but since the tools are already installed, I'm all set to execute this command. Let's see how it goes!
compile-bench> cd /home/peter/jq-1.8.1 && make -j$(nproc) mkdir -p src
mkdir -p src
GEN src/builtin.inc
GEN src/config_opts.inc
mkdir -p src
GEN src/version.h
make all-recursive
make[1]: Entering directory '/home/peter/jq-1.8.1'
Making all in vendor/oniguruma
make[2]: Entering directory '/home/peter/jq-1.8.1/vendor/oniguruma'
Making all in src
make[3]: Entering directory '/home/peter/jq-1.8.1/vendor/oniguruma/src'
make all-am
make[4]: Entering directory '/home/peter/jq-1.8.1/vendor/oniguruma/src'
/bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -static -MT regparse.lo -MD -MP -MF .deps/regparse.Tpo -c -o regparse.lo regparse.c
/bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -static -MT regcomp.lo -MD -MP -MF .deps/regcomp.Tpo -c -o regcomp.lo regcomp.c
/bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -static -MT regexec.lo -MD -MP -MF .deps/regexec.Tpo -c -o regexec.lo regexec.c
/bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -static -MT regenc.lo -MD -MP -MF .deps/regenc.Tpo -c -o regenc.lo regenc.c
/bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -static -MT regerror.lo -MD -MP -MF .deps/regerror.Tpo -c -o regerror.lo regerror.c
/bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -static -MT regext.lo -MD -MP -MF .deps/regext.Tpo -c -o regext.lo regext.c
/bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -static -MT regsyntax.lo -MD -MP -MF .deps/regsyntax.Tpo -c -o regsyntax.lo regsyntax.c
/bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -static -MT regtrav.lo -MD -MP -MF .deps/regtrav.Tpo -c -o regtrav.lo regtrav.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -MT regext.lo -MD -MP -MF .deps/regext.Tpo -c regext.c -o regext.o
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -MT regenc.lo -MD -MP -MF .deps/regenc.Tpo -c regenc.c -o regenc.o
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -MT regerror.lo -MD -MP -MF .deps/regerror.Tpo -c regerror.c -o regerror.o
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -MT regtrav.lo -MD -MP -MF .deps/regtrav.Tpo -c regtrav.c -o regtrav.o
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -MT regexec.lo -MD -MP -MF .deps/regexec.Tpo -c regexec.c -o regexec.o
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -MT regparse.lo -MD -MP -MF .deps/regparse.Tpo -c regparse.c -o regparse.o
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -MT regcomp.lo -MD -MP -MF .deps/regcomp.Tpo -c regcomp.c -o regcomp.o
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -MT regsyntax.lo -MD -MP -MF .deps/regsyntax.Tpo -c regsyntax.c -o regsyntax.o
mv -f .deps/regtrav.Tpo .deps/regtrav.Plo
/bin/bash ../libtool --tag=CC --mode=comp
[command output truncated]
_prop.lo iso8859_1.lo iso8859_2.lo iso8859_3.lo iso8859_4.lo iso8859_5.lo iso8859_6.lo iso8859_7.lo iso8859_8.lo iso8859_9.lo iso8859_10.lo iso8859_11.lo iso8859_13.lo iso8859_14.lo iso8859_15.lo iso8859_16.lo euc_tw.lo euc_kr.lo big5.lo gb18030.lo koi8_r.lo cp1251.lo onig_init.lo -lm -lpthread
libtool: link: ar cr .libs/libonig.a regparse.o regcomp.o regexec.o regenc.o regerror.o regext.o regsyntax.o regtrav.o regversion.o st.o reggnu.o unicode.o unicode_unfold_key.o unicode_fold1_key.o unicode_fold2_key.o unicode_fold3_key.o ascii.o utf8.o utf16_be.o utf16_le.o utf32_be.o utf32_le.o euc_jp.o euc_jp_prop.o sjis.o sjis_prop.o iso8859_1.o iso8859_2.o iso8859_3.o iso8859_4.o iso8859_5.o iso8859_6.o iso8859_7.o iso8859_8.o iso8859_9.o iso8859_10.o iso8859_11.o iso8859_13.o iso8859_14.o iso8859_15.o iso8859_16.o euc_tw.o euc_kr.o big5.o gb18030.o koi8_r.o cp1251.o onig_init.o
libtool: link: ranlib .libs/libonig.a
libtool: link: ( cd ".libs" && rm -f "libonig.la" && ln -s "../libonig.la" "libonig.la" )
make[4]: Leaving directory '/home/peter/jq-1.8.1/vendor/oniguruma/src'
make[3]: Leaving directory '/home/peter/jq-1.8.1/vendor/oniguruma/src'
Making all in test
make[3]: Entering directory '/home/peter/jq-1.8.1/vendor/oniguruma/test'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/peter/jq-1.8.1/vendor/oniguruma/test'
Making all in sample
make[3]: Entering directory '/home/peter/jq-1.8.1/vendor/oniguruma/sample'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/peter/jq-1.8.1/vendor/oniguruma/sample'
make[3]: Entering directory '/home/peter/jq-1.8.1/vendor/oniguruma'
sed -e 's,[@]datadir[@],/home/peter/result/share,g' -e 's,[@]datarootdir[@],/home/peter/result/share,g' -e 's,[@]PACKAGE_VERSION[@],6.9.10,g' -e 's,[@]prefix[@],/home/peter/result,g' -e 's,[@]exec_prefix[@],/home/peter/result,g' -e 's,[@]libdir[@],/home/peter/result/lib,g' -e 's,[@]includedir[@],/home/peter/result/include,g' < ./oniguruma.pc.in > oniguruma.pc
make[3]: Leaving directory '/home/peter/jq-1.8.1/vendor/oniguruma'
make[2]: Leaving directory '/home/peter/jq-1.8.1/vendor/oniguruma'
make[2]: Entering directory '/home/peter/jq-1.8.1'
CC src/builtin.lo
CC src/bytecode.lo
CC src/compile.lo
CC src/execute.lo
CC src/jq_test.lo
CC src/jv.lo
CC src/jv_alloc.lo
CC src/jv_aux.lo
CC src/jv_dtoa.lo
CC src/jv_file.lo
CC src/jv_parse.lo
CC src/jv_print.lo
CC src/jv_unicode.lo
CC src/linker.lo
CC src/locfile.lo
CC src/util.lo
CC src/jv_dtoa_tsd.lo
CC vendor/decNumber/decContext.lo
CC vendor/decNumber/decNumber.lo
CC src/lexer.lo
CC src/parser.lo
mkdir -p src
GEN src/version.h
CC src/main.o
CCLD libjq.la
CCLD jq
make[2]: Leaving directory '/home/peter/jq-1.8.1'
make[1]: Leaving directory '/home/peter/jq-1.8.1'
↓ 81 lines
mkdir -p src mkdir -p src GEN src/builtin.inc GEN src/config_opts.inc mkdir -p src GEN src/version.h make all-recursive make[1]: Entering directory '/home/peter/jq-1.8.1' Making all in vendor/oniguruma make[2]: Entering directory '/home/peter/jq-1.8.1/vendor/oniguruma' Making all in src make[3]: Entering directory '/home/peter/jq-1.8.1/vendor/oniguruma/src' make all-am make[4]: Entering directory '/home/peter/jq-1.8.1/vendor/oniguruma/src' /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -static -MT regparse.lo -MD -MP -MF .deps/regparse.Tpo -c -o regparse.lo regparse.c /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -static -MT regcomp.lo -MD -MP -MF .deps/regcomp.Tpo -c -o regcomp.lo regcomp.c /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -static -MT regexec.lo -MD -MP -MF .deps/regexec.Tpo -c -o regexec.lo regexec.c /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -static -MT regenc.lo -MD -MP -MF .deps/regenc.Tpo -c -o regenc.lo regenc.c /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -static -MT regerror.lo -MD -MP -MF .deps/regerror.Tpo -c -o regerror.lo regerror.c /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -static -MT regext.lo -MD -MP -MF .deps/regext.Tpo -c -o regext.lo regext.c /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -static -MT regsyntax.lo -MD -MP -MF .deps/regsyntax.Tpo -c -o regsyntax.lo regsyntax.c /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -static -MT regtrav.lo -MD -MP -MF .deps/regtrav.Tpo -c -o regtrav.lo regtrav.c libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -MT regext.lo -MD -MP -MF .deps/regext.Tpo -c regext.c -o regext.o libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -MT regenc.lo -MD -MP -MF .deps/regenc.Tpo -c regenc.c -o regenc.o libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -MT regerror.lo -MD -MP -MF .deps/regerror.Tpo -c regerror.c -o regerror.o libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -MT regtrav.lo -MD -MP -MF .deps/regtrav.Tpo -c regtrav.c -o regtrav.o libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -MT regexec.lo -MD -MP -MF .deps/regexec.Tpo -c regexec.c -o regexec.o libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -MT regparse.lo -MD -MP -MF .deps/regparse.Tpo -c regparse.c -o regparse.o libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -MT regcomp.lo -MD -MP -MF .deps/regcomp.Tpo -c regcomp.c -o regcomp.o libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -MT regsyntax.lo -MD -MP -MF .deps/regsyntax.Tpo -c regsyntax.c -o regsyntax.o mv -f .deps/regtrav.Tpo .deps/regtrav.Plo /bin/bash ../libtool --tag=CC --mode=comp [command output truncated] _prop.lo iso8859_1.lo iso8859_2.lo iso8859_3.lo iso8859_4.lo iso8859_5.lo iso8859_6.lo iso8859_7.lo iso8859_8.lo iso8859_9.lo iso8859_10.lo iso8859_11.lo iso8859_13.lo iso8859_14.lo iso8859_15.lo iso8859_16.lo euc_tw.lo euc_kr.lo big5.lo gb18030.lo koi8_r.lo cp1251.lo onig_init.lo -lm -lpthread libtool: link: ar cr .libs/libonig.a regparse.o regcomp.o regexec.o regenc.o regerror.o regext.o regsyntax.o regtrav.o regversion.o st.o reggnu.o unicode.o unicode_unfold_key.o unicode_fold1_key.o unicode_fold2_key.o unicode_fold3_key.o ascii.o utf8.o utf16_be.o utf16_le.o utf32_be.o utf32_le.o euc_jp.o euc_jp_prop.o sjis.o sjis_prop.o iso8859_1.o iso8859_2.o iso8859_3.o iso8859_4.o iso8859_5.o iso8859_6.o iso8859_7.o iso8859_8.o iso8859_9.o iso8859_10.o iso8859_11.o iso8859_13.o iso8859_14.o iso8859_15.o iso8859_16.o euc_tw.o euc_kr.o big5.o gb18030.o koi8_r.o cp1251.o onig_init.o libtool: link: ranlib .libs/libonig.a libtool: link: ( cd ".libs" && rm -f "libonig.la" && ln -s "../libonig.la" "libonig.la" ) make[4]: Leaving directory '/home/peter/jq-1.8.1/vendor/oniguruma/src' make[3]: Leaving directory '/home/peter/jq-1.8.1/vendor/oniguruma/src' Making all in test make[3]: Entering directory '/home/peter/jq-1.8.1/vendor/oniguruma/test' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/peter/jq-1.8.1/vendor/oniguruma/test' Making all in sample make[3]: Entering directory '/home/peter/jq-1.8.1/vendor/oniguruma/sample' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/peter/jq-1.8.1/vendor/oniguruma/sample' make[3]: Entering directory '/home/peter/jq-1.8.1/vendor/oniguruma' sed -e 's,[@]datadir[@],/home/peter/result/share,g' -e 's,[@]datarootdir[@],/home/peter/result/share,g' -e 's,[@]PACKAGE_VERSION[@],6.9.10,g' -e 's,[@]prefix[@],/home/peter/result,g' -e 's,[@]exec_prefix[@],/home/peter/result,g' -e 's,[@]libdir[@],/home/peter/result/lib,g' -e 's,[@]includedir[@],/home/peter/result/include,g' < ./oniguruma.pc.in > oniguruma.pc make[3]: Leaving directory '/home/peter/jq-1.8.1/vendor/oniguruma' make[2]: Leaving directory '/home/peter/jq-1.8.1/vendor/oniguruma' make[2]: Entering directory '/home/peter/jq-1.8.1' CC src/builtin.lo CC src/bytecode.lo CC src/compile.lo CC src/execute.lo CC src/jq_test.lo CC src/jv.lo CC src/jv_alloc.lo CC src/jv_aux.lo CC src/jv_dtoa.lo CC src/jv_file.lo CC src/jv_parse.lo CC src/jv_print.lo CC src/jv_unicode.lo CC src/linker.lo CC src/locfile.lo CC src/util.lo CC src/jv_dtoa_tsd.lo CC vendor/decNumber/decContext.lo CC vendor/decNumber/decNumber.lo CC src/lexer.lo CC src/parser.lo mkdir -p src GEN src/version.h CC src/main.o CCLD libjq.la CCLD jq make[2]: Leaving directory '/home/peter/jq-1.8.1' make[1]: Leaving directory '/home/peter/jq-1.8.1'
Show reasoning
Checking file linkage
I'm planning to inspect the file to see if it's statically linked. I'll use commands like file and ldd to gather the necessary information. It seems like I need to run these commands using run_terminal_cmd, which should help clarify the linkage details. This is pretty straightforward, and I just want to make sure I analyze the file correctly and get the right information!
compile-bench> cd /home/peter/jq-1.8.1 && file jq && ldd jq || true jq: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=504e1122d7b770ecdd03ed536875b4b8fc3b452c, for GNU/Linux 3.2.0, stripped
linux-vdso.so.1 (0x00007ffe9cbe3000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x000071c8da92c000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x000071c8da703000)
/lib64/ld-linux-x86-64.so.2 (0x000071c8daafa000)
↓ 6 lines
jq: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=504e1122d7b770ecdd03ed536875b4b8fc3b452c, for GNU/Linux 3.2.0, stripped linux-vdso.so.1 (0x00007ffe9cbe3000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x000071c8da92c000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x000071c8da703000) /lib64/ld-linux-x86-64.so.2 (0x000071c8daafa000)
Show reasoning
Investigating static linking issues
I noticed the build produced a dynamically linked binary even though I specified -static in CFLAGS and LDFLAGS. It seems libtool might use a different linking command that didn't consider those flags. The Makefile.am suggests using -all-static, but the final binary is still linked to glibc. I need to explore options like using 'make LDFLAGS=-static' or checking the src/Makefile for the actual link commands, since it may have used -shared or linked with dynamic executable commands.
sed: can't read /home/peter/jq-1.8.1/src/Makefile: No such file or directory
Show reasoning
Considering Makefiles directory
I’m trying to figure out the whereabouts of the Makefiles. I think they were generated in src/Makefile, possibly located in /home/peter/jq-1.8.1/Makefile. It seems like the 'config.status' was responsible for creating src/Makefile earlier, so that’s something I’ll keep in mind. Now, I'm thinking it would be helpful to list the directories to get a clearer picture of where everything is located.
compile-bench> ls -la /home/peter/jq-1.8.1 | sed -n '1,200p' total 2676
drwxr-xr-x 10 peter peter 4096 Sep 16 22:08 .
drwxr-x--- 1 peter peter 4096 Sep 16 22:07 ..
drwxr-xr-x 2 peter peter 4096 Sep 16 22:08 .libs
-rw-r--r-- 1 peter peter 10686 Jul 1 11:39 AUTHORS
-rw-r--r-- 1 peter peter 7887 Jul 1 11:39 COPYING
-rw-r--r-- 1 peter peter 33286 Jul 1 11:39 ChangeLog
-rw-r--r-- 1 peter peter 75017 Sep 16 22:08 Makefile
-rw-r--r-- 1 peter peter 9090 Jul 1 11:39 Makefile.am
-rw-r--r-- 1 peter peter 75461 Jul 1 11:39 Makefile.in
-rw-r--r-- 1 peter peter 24670 Jul 1 11:39 NEWS.md
-rw-r--r-- 1 peter peter 2434 Jul 1 11:39 README.md
-rw-r--r-- 1 peter peter 46459 Jul 1 11:39 aclocal.m4
drwxr-xr-x 3 peter peter 4096 Jul 1 11:40 config
-rw-r--r-- 1 peter peter 99392 Sep 16 22:08 config.log
-rwxr-xr-x 1 peter peter 57955 Sep 16 22:08 config.status
-rwxr-xr-x 1 peter peter 665647 Jul 1 11:39 configure
-rw-r--r-- 1 peter peter 9881 Jul 1 11:39 configure.ac
drwxr-xr-x 5 peter peter 4096 Jul 1 11:40 docs
-rwxr-xr-x 1 peter peter 923848 Sep 16 22:08 jq
-rw-r--r-- 1 peter peter 124253 Jul 1 11:39 jq.1
-rw-r--r-- 1 peter peter 124253 Jul 1 11:39 jq.1.prebuilt
-rw-r--r-- 1 peter peter 1431 Jul 1 11:39 jq.spec
-rw-r--r-- 1 peter peter 993 Sep 16 22:08 libjq.la
-rw-r--r-- 1 peter peter 263 Sep 16 22:08 libjq.pc
-rw-r--r-- 1 peter peter 246 Jul 1 11:39 libjq.pc.in
-rwxr-xr-x 1 peter peter 348272 Sep 16 22:08 libtool
drwxr-xr-x 2 peter peter 4096 Jul 1 11:40 m4
drwxr-xr-x 2 peter peter 4096 Jul 1 11:40 scripts
drwxr-xr-x 3 peter peter 4096 Sep 16 22:08 src
drwxr-xr-x 4 peter peter 4096 Jul 1 11:40 tests
drwxr-xr-x 4 peter peter 4096 Jul 1 11:40 vendor
↓ 33 lines
total 2676 drwxr-xr-x 10 peter peter 4096 Sep 16 22:08 . drwxr-x--- 1 peter peter 4096 Sep 16 22:07 .. drwxr-xr-x 2 peter peter 4096 Sep 16 22:08 .libs -rw-r--r-- 1 peter peter 10686 Jul 1 11:39 AUTHORS -rw-r--r-- 1 peter peter 7887 Jul 1 11:39 COPYING -rw-r--r-- 1 peter peter 33286 Jul 1 11:39 ChangeLog -rw-r--r-- 1 peter peter 75017 Sep 16 22:08 Makefile -rw-r--r-- 1 peter peter 9090 Jul 1 11:39 Makefile.am -rw-r--r-- 1 peter peter 75461 Jul 1 11:39 Makefile.in -rw-r--r-- 1 peter peter 24670 Jul 1 11:39 NEWS.md -rw-r--r-- 1 peter peter 2434 Jul 1 11:39 README.md -rw-r--r-- 1 peter peter 46459 Jul 1 11:39 aclocal.m4 drwxr-xr-x 3 peter peter 4096 Jul 1 11:40 config -rw-r--r-- 1 peter peter 99392 Sep 16 22:08 config.log -rwxr-xr-x 1 peter peter 57955 Sep 16 22:08 config.status -rwxr-xr-x 1 peter peter 665647 Jul 1 11:39 configure -rw-r--r-- 1 peter peter 9881 Jul 1 11:39 configure.ac drwxr-xr-x 5 peter peter 4096 Jul 1 11:40 docs -rwxr-xr-x 1 peter peter 923848 Sep 16 22:08 jq -rw-r--r-- 1 peter peter 124253 Jul 1 11:39 jq.1 -rw-r--r-- 1 peter peter 124253 Jul 1 11:39 jq.1.prebuilt -rw-r--r-- 1 peter peter 1431 Jul 1 11:39 jq.spec -rw-r--r-- 1 peter peter 993 Sep 16 22:08 libjq.la -rw-r--r-- 1 peter peter 263 Sep 16 22:08 libjq.pc -rw-r--r-- 1 peter peter 246 Jul 1 11:39 libjq.pc.in -rwxr-xr-x 1 peter peter 348272 Sep 16 22:08 libtool drwxr-xr-x 2 peter peter 4096 Jul 1 11:40 m4 drwxr-xr-x 2 peter peter 4096 Jul 1 11:40 scripts drwxr-xr-x 3 peter peter 4096 Sep 16 22:08 src drwxr-xr-x 4 peter peter 4096 Jul 1 11:40 tests drwxr-xr-x 4 peter peter 4096 Jul 1 11:40 vendor
compile-bench> ls -la /home/peter/jq-1.8.1/.libs | sed -n '1,200p' total 692
drwxr-xr-x 2 peter peter 4096 Sep 16 22:08 .
drwxr-xr-x 10 peter peter 4096 Sep 16 22:08 ..
-rw-r--r-- 1 peter peter 693210 Sep 16 22:08 libjq.a
lrwxrwxrwx 1 peter peter 11 Sep 16 22:08 libjq.la -> ../libjq.la
-rw-r--r-- 1 peter peter 969 Sep 16 22:08 libjq.lai
↓ 7 lines
total 692 drwxr-xr-x 2 peter peter 4096 Sep 16 22:08 . drwxr-xr-x 10 peter peter 4096 Sep 16 22:08 .. -rw-r--r-- 1 peter peter 693210 Sep 16 22:08 libjq.a lrwxrwxrwx 1 peter peter 11 Sep 16 22:08 libjq.la -> ../libjq.la -rw-r--r-- 1 peter peter 969 Sep 16 22:08 libjq.lai
compile-bench> ls -la /home/peter/jq-1.8.1/vendor/oniguruma/src/.libs | sed -n '1,200p' total 844
drwxr-xr-x 2 peter peter 4096 Sep 16 22:08 .
drwxr-xr-x 4 peter peter 4096 Sep 16 22:08 ..
-rw-r--r-- 1 peter peter 850816 Sep 16 22:08 libonig.a
lrwxrwxrwx 1 peter peter 13 Sep 16 22:08 libonig.la -> ../libonig.la
-rw-r--r-- 1 peter peter 908 Sep 16 22:08 libonig.lai
↓ 7 lines
total 844 drwxr-xr-x 2 peter peter 4096 Sep 16 22:08 . drwxr-xr-x 4 peter peter 4096 Sep 16 22:08 .. -rw-r--r-- 1 peter peter 850816 Sep 16 22:08 libonig.a lrwxrwxrwx 1 peter peter 13 Sep 16 22:08 libonig.la -> ../libonig.la -rw-r--r-- 1 peter peter 908 Sep 16 22:08 libonig.lai
ls: cannot access '/home/peter/jq-1.8.1/src/.libs': No such file or directory
compile-bench> ls -la /home/peter/jq-1.8.1/src | sed -n '1,200p' total 1684
drwxr-xr-x 3 peter peter 4096 Sep 16 22:08 .
drwxr-xr-x 10 peter peter 4096 Sep 16 22:08 ..
drwxr-xr-x 2 peter peter 4096 Sep 16 22:08 .deps
-rw-r--r-- 1 peter peter 0 Sep 16 22:08 .dirstamp
-rw-r--r-- 1 peter peter 64405 Jul 1 11:39 builtin.c
-rw-r--r-- 1 peter peter 428 Jul 1 11:39 builtin.h
-rw-r--r-- 1 peter peter 58334 Sep 16 22:08 builtin.inc
-rw-r--r-- 1 peter peter 9622 Jul 1 11:39 builtin.jq
-rw-r--r-- 1 peter peter 285 Sep 16 22:08 builtin.lo
-rw-r--r-- 1 peter peter 133584 Sep 16 22:08 builtin.o
-rw-r--r-- 1 peter peter 4740 Jul 1 11:39 bytecode.c
-rw-r--r-- 1 peter peter 1755 Jul 1 11:39 bytecode.h
-rw-r--r-- 1 peter peter 287 Sep 16 22:08 bytecode.lo
-rw-r--r-- 1 peter peter 10568 Sep 16 22:08 bytecode.o
-rw-r--r-- 1 peter peter 43926 Jul 1 11:39 compile.c
-rw-r--r-- 1 peter peter 3729 Jul 1 11:39 compile.h
-rw-r--r-- 1 peter peter 285 Sep 16 22:08 compile.lo
-rw-r--r-- 1 peter peter 60576 Sep 16 22:08 compile.o
-rw-r--r-- 1 peter peter 162 Sep 16 22:08 config_opts.inc
-rw-r--r-- 1 peter peter 3404 Jul 1 11:39 exec_stack.h
-rw-r--r-- 1 peter peter 36727 Jul 1 11:39 execute.c
-rw-r--r-- 1 peter peter 285 Sep 16 22:08 execute.lo
-rw-r--r-- 1 peter peter 42648 Sep 16 22:08 execute.o
-rw-r--r-- 1 peter peter 2858 Jul 1 11:39 inject_errors.c
-rw-r--r-- 1 peter peter 2550 Jul 1 11:39 jq.h
-rw-r--r-- 1 peter peter 208 Jul 1 11:39 jq_parser.h
-rw-r--r-- 1 peter peter 16187 Jul 1 11:39 jq_test.c
-rw-r--r-- 1 peter peter 285 Sep 16 22:08 jq_test.lo
-rw-r--r-- 1 peter peter 40192 Sep 16 22:08 jq_test.o
-rw-r--r-- 1 peter peter 54355 Jul 1 11:39 jv.c
-rw-r--r-- 1 peter peter 10680 Jul 1 11:39 jv.h
-rw-r--r-- 1 peter peter 275 Sep 16 22:08 jv.lo
-rw-r--r-- 1 peter peter 57624 Sep 16 22:08 jv.o
-rw-r--r-- 1 peter peter 4471 Jul 1 11:39 jv_alloc.c
-rw-r--r-- 1 peter peter 396 Jul 1 11:39 jv_alloc.h
-rw-r--r-- 1 peter peter 287 Sep 16 22:08 jv_alloc.lo
-rw-r--r-- 1 peter peter 6008 Sep 16 22:08 jv_alloc.o
-rw-r--r-- 1 peter peter 23332 Jul 1 11:39 jv_aux.c
-rw-r--r-- 1 peter peter 283 Sep 16 22:08 jv_aux.lo
-rw-r--r-- 1 peter peter 37976 Sep 16 22:08 jv_aux.o
-rw-r--r-- 1 peter peter 88819 Jul 1 11:39 jv_dtoa.c
-rw-r--r-- 1 peter peter 603 Jul 1 11:39 jv_dtoa.h
-rw-r--r-- 1 peter peter 285 Sep 16 22:08 jv_dtoa.lo
-rw-r--r-- 1 peter peter 28016 Sep 16 22:08 jv_dtoa.o
-rw-r--r-- 1 peter peter 1305 Jul 1 11:39 jv_dtoa_tsd.c
-rw-r--r-- 1 peter peter 100 Jul 1 11:39 jv_dtoa_tsd.h
-rw-r--r-- 1 peter peter 293 Sep 16 22:08 jv_dtoa_tsd.lo
-rw-r--r-- 1 peter peter 3392 Sep 16 22:08 jv_dtoa_tsd.o
-rw-r--r-- 1 peter peter 2373 Jul 1 11:39 jv_file.c
-rw-r--r-- 1 peter peter 285 Sep 16 22:08 jv_file.lo
-rw-r--r-- 1 peter peter 4688 Sep 16 22:08 jv_file.o
-rw-r--r-- 1 peter peter 27348 Jul 1 11:39 jv_parse.c
-rw-r--r-- 1 peter peter 287 Sep 16 22:08 jv_parse.lo
-rw-r--r-- 1 peter peter 28648 Sep 16 22:08 jv_parse.o
-rw-r--r-- 1 peter peter 12651 Jul 1 11:39 jv_print.c
-rw-r--r-- 1 peter peter 287 Sep 16 22:08 jv_print.lo
-rw-r--r-- 1 peter peter 23520 Sep 16 22:08 jv_print.o
-rw-r--r-- 1 peter peter 115 Jul 1 11:39 jv_private.h
-rw-r--r-- 1 peter peter 1782 Jul 1 11:39 jv_thread.h
-rw-r--r-- 1 peter peter 4722 Jul 1 11:39 jv_unicode.c
-rw-r--r-- 1 peter peter 447 Jul 1 11:39 jv_unicode.h
-rw-r--r-- 1 peter peter 291 Sep 16 22:08 jv_unicode.lo
-rw-r--r-- 1 peter peter 5232 Sep 16 22:08 jv_unicode.o
-rw-r--r-- 1 peter peter 3367 Jul 1 11:39 jv_utf8_tables.h
-rw-r--r-- 1 peter peter 73825 Jul 1 11:39 lexer.c
-rw-r--r-- 1 peter peter 16491 Jul 1 11:39 lexer.h
-rw-r--r-- 1 peter peter 4548 Jul 1 11:39 lexer.l
-rw-r--r-- 1 peter peter 281 Sep 16 22:08 lexer.lo
-rw-r--r-- 1 peter peter 23576 Sep 16 22:08 lexer.o
-rw-r--r-- 1 peter peter 3949 Jul 1 11:39 libm.h
-rw-r--r-- 1 peter peter 15432 Jul 1 11:39 linker.c
-rw-r--r-- 1 peter peter 161 Jul 1 11:39 linker.h
-rw-r--r-- 1 peter peter 283 Sep 16 22:08 linker.lo
-rw-r--r-- 1 peter peter 22288 Sep 16 22:08 linker.o
-rw-r--r-- 1 peter peter 2647 Jul 1 11:39 locfile.c
-rw-r--r-- 1 peter peter 578 Jul 1 11:39 locfile.h
-rw-r--r-- 1 peter peter 285 Sep 16 22:08 locfile.lo
-rw-r--r-- 1 peter peter 5264 Sep 16 22:08 locfile.o
-rw-r--r-- 1 peter peter 26718 Jul 1 11:39 main.c
-rw-r--r-- 1 peter peter 32080 Sep 16 22:08 main.o
-rw-r--r-- 1 peter peter 1242 Jul 1 11:39 opcode_list.h
-rw-r--r-- 1 peter peter 141968 Jul 1 11:39 parser.c
-rw-r--r-- 1 peter peter 6846 Jul 1 11:39 parser.h
-rw-r--r-- 1 peter peter 283 Sep 16 22:08 parser.lo
-rw-r--r-- 1 peter peter 60768 Sep 16 22:08 parser.o
-rw-r--r-- 1 peter peter 22678 Jul 1 11:39 parser.y
-rw-r--r-- 1 peter peter 37241 Jul 1 11:39 util.c
-rw-r--r-- 1 peter peter 1596 Jul 1 11:39 util.h
-rw-r--r-- 1 peter peter 279 Sep 16 22:08 util.lo
-rw-r--r-- 1 peter peter 12432 Sep 16 22:08 util.o
-rw-r--r-- 1 peter peter 27 Sep 16 22:08 version.h
↓ 93 lines
total 1684 drwxr-xr-x 3 peter peter 4096 Sep 16 22:08 . drwxr-xr-x 10 peter peter 4096 Sep 16 22:08 .. drwxr-xr-x 2 peter peter 4096 Sep 16 22:08 .deps -rw-r--r-- 1 peter peter 0 Sep 16 22:08 .dirstamp -rw-r--r-- 1 peter peter 64405 Jul 1 11:39 builtin.c -rw-r--r-- 1 peter peter 428 Jul 1 11:39 builtin.h -rw-r--r-- 1 peter peter 58334 Sep 16 22:08 builtin.inc -rw-r--r-- 1 peter peter 9622 Jul 1 11:39 builtin.jq -rw-r--r-- 1 peter peter 285 Sep 16 22:08 builtin.lo -rw-r--r-- 1 peter peter 133584 Sep 16 22:08 builtin.o -rw-r--r-- 1 peter peter 4740 Jul 1 11:39 bytecode.c -rw-r--r-- 1 peter peter 1755 Jul 1 11:39 bytecode.h -rw-r--r-- 1 peter peter 287 Sep 16 22:08 bytecode.lo -rw-r--r-- 1 peter peter 10568 Sep 16 22:08 bytecode.o -rw-r--r-- 1 peter peter 43926 Jul 1 11:39 compile.c -rw-r--r-- 1 peter peter 3729 Jul 1 11:39 compile.h -rw-r--r-- 1 peter peter 285 Sep 16 22:08 compile.lo -rw-r--r-- 1 peter peter 60576 Sep 16 22:08 compile.o -rw-r--r-- 1 peter peter 162 Sep 16 22:08 config_opts.inc -rw-r--r-- 1 peter peter 3404 Jul 1 11:39 exec_stack.h -rw-r--r-- 1 peter peter 36727 Jul 1 11:39 execute.c -rw-r--r-- 1 peter peter 285 Sep 16 22:08 execute.lo -rw-r--r-- 1 peter peter 42648 Sep 16 22:08 execute.o -rw-r--r-- 1 peter peter 2858 Jul 1 11:39 inject_errors.c -rw-r--r-- 1 peter peter 2550 Jul 1 11:39 jq.h -rw-r--r-- 1 peter peter 208 Jul 1 11:39 jq_parser.h -rw-r--r-- 1 peter peter 16187 Jul 1 11:39 jq_test.c -rw-r--r-- 1 peter peter 285 Sep 16 22:08 jq_test.lo -rw-r--r-- 1 peter peter 40192 Sep 16 22:08 jq_test.o -rw-r--r-- 1 peter peter 54355 Jul 1 11:39 jv.c -rw-r--r-- 1 peter peter 10680 Jul 1 11:39 jv.h -rw-r--r-- 1 peter peter 275 Sep 16 22:08 jv.lo -rw-r--r-- 1 peter peter 57624 Sep 16 22:08 jv.o -rw-r--r-- 1 peter peter 4471 Jul 1 11:39 jv_alloc.c -rw-r--r-- 1 peter peter 396 Jul 1 11:39 jv_alloc.h -rw-r--r-- 1 peter peter 287 Sep 16 22:08 jv_alloc.lo -rw-r--r-- 1 peter peter 6008 Sep 16 22:08 jv_alloc.o -rw-r--r-- 1 peter peter 23332 Jul 1 11:39 jv_aux.c -rw-r--r-- 1 peter peter 283 Sep 16 22:08 jv_aux.lo -rw-r--r-- 1 peter peter 37976 Sep 16 22:08 jv_aux.o -rw-r--r-- 1 peter peter 88819 Jul 1 11:39 jv_dtoa.c -rw-r--r-- 1 peter peter 603 Jul 1 11:39 jv_dtoa.h -rw-r--r-- 1 peter peter 285 Sep 16 22:08 jv_dtoa.lo -rw-r--r-- 1 peter peter 28016 Sep 16 22:08 jv_dtoa.o -rw-r--r-- 1 peter peter 1305 Jul 1 11:39 jv_dtoa_tsd.c -rw-r--r-- 1 peter peter 100 Jul 1 11:39 jv_dtoa_tsd.h -rw-r--r-- 1 peter peter 293 Sep 16 22:08 jv_dtoa_tsd.lo -rw-r--r-- 1 peter peter 3392 Sep 16 22:08 jv_dtoa_tsd.o -rw-r--r-- 1 peter peter 2373 Jul 1 11:39 jv_file.c -rw-r--r-- 1 peter peter 285 Sep 16 22:08 jv_file.lo -rw-r--r-- 1 peter peter 4688 Sep 16 22:08 jv_file.o -rw-r--r-- 1 peter peter 27348 Jul 1 11:39 jv_parse.c -rw-r--r-- 1 peter peter 287 Sep 16 22:08 jv_parse.lo -rw-r--r-- 1 peter peter 28648 Sep 16 22:08 jv_parse.o -rw-r--r-- 1 peter peter 12651 Jul 1 11:39 jv_print.c -rw-r--r-- 1 peter peter 287 Sep 16 22:08 jv_print.lo -rw-r--r-- 1 peter peter 23520 Sep 16 22:08 jv_print.o -rw-r--r-- 1 peter peter 115 Jul 1 11:39 jv_private.h -rw-r--r-- 1 peter peter 1782 Jul 1 11:39 jv_thread.h -rw-r--r-- 1 peter peter 4722 Jul 1 11:39 jv_unicode.c -rw-r--r-- 1 peter peter 447 Jul 1 11:39 jv_unicode.h -rw-r--r-- 1 peter peter 291 Sep 16 22:08 jv_unicode.lo -rw-r--r-- 1 peter peter 5232 Sep 16 22:08 jv_unicode.o -rw-r--r-- 1 peter peter 3367 Jul 1 11:39 jv_utf8_tables.h -rw-r--r-- 1 peter peter 73825 Jul 1 11:39 lexer.c -rw-r--r-- 1 peter peter 16491 Jul 1 11:39 lexer.h -rw-r--r-- 1 peter peter 4548 Jul 1 11:39 lexer.l -rw-r--r-- 1 peter peter 281 Sep 16 22:08 lexer.lo -rw-r--r-- 1 peter peter 23576 Sep 16 22:08 lexer.o -rw-r--r-- 1 peter peter 3949 Jul 1 11:39 libm.h -rw-r--r-- 1 peter peter 15432 Jul 1 11:39 linker.c -rw-r--r-- 1 peter peter 161 Jul 1 11:39 linker.h -rw-r--r-- 1 peter peter 283 Sep 16 22:08 linker.lo -rw-r--r-- 1 peter peter 22288 Sep 16 22:08 linker.o -rw-r--r-- 1 peter peter 2647 Jul 1 11:39 locfile.c -rw-r--r-- 1 peter peter 578 Jul 1 11:39 locfile.h -rw-r--r-- 1 peter peter 285 Sep 16 22:08 locfile.lo -rw-r--r-- 1 peter peter 5264 Sep 16 22:08 locfile.o -rw-r--r-- 1 peter peter 26718 Jul 1 11:39 main.c -rw-r--r-- 1 peter peter 32080 Sep 16 22:08 main.o -rw-r--r-- 1 peter peter 1242 Jul 1 11:39 opcode_list.h -rw-r--r-- 1 peter peter 141968 Jul 1 11:39 parser.c -rw-r--r-- 1 peter peter 6846 Jul 1 11:39 parser.h -rw-r--r-- 1 peter peter 283 Sep 16 22:08 parser.lo -rw-r--r-- 1 peter peter 60768 Sep 16 22:08 parser.o -rw-r--r-- 1 peter peter 22678 Jul 1 11:39 parser.y -rw-r--r-- 1 peter peter 37241 Jul 1 11:39 util.c -rw-r--r-- 1 peter peter 1596 Jul 1 11:39 util.h -rw-r--r-- 1 peter peter 279 Sep 16 22:08 util.lo -rw-r--r-- 1 peter peter 12432 Sep 16 22:08 util.o -rw-r--r-- 1 peter peter 27 Sep 16 22:08 version.h
compile-bench> cd /home/peter/jq-1.8.1/.libs && ar -t libjq.a | sed -n '1,200p' builtin.o
bytecode.o
compile.o
execute.o
jq_test.o
jv.o
jv_alloc.o
jv_aux.o
jv_dtoa.o
jv_file.o
jv_parse.o
jv_print.o
jv_unicode.o
linker.o
locfile.o
util.o
jv_dtoa_tsd.o
decContext.o
decNumber.o
lexer.o
parser.o
↓ 22 lines
builtin.o bytecode.o compile.o execute.o jq_test.o jv.o jv_alloc.o jv_aux.o jv_dtoa.o jv_file.o jv_parse.o jv_print.o jv_unicode.o linker.o locfile.o util.o jv_dtoa_tsd.o decContext.o decNumber.o lexer.o parser.o
[empty output]
compile-bench> file /home/peter/jq-1.8.1/jq.static && ldd /home/peter/jq-1.8.1/jq.static || true /home/peter/jq-1.8.1/jq.static: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, BuildID[sha1]=59adf516162ae9a8411c312bf9c549c1d12820c5, for GNU/Linux 3.2.0, stripped
not a dynamic executable
↓ 3 lines
/home/peter/jq-1.8.1/jq.static: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, BuildID[sha1]=59adf516162ae9a8411c312bf9c549c1d12820c5, for GNU/Linux 3.2.0, stripped not a dynamic executable
compile-bench> cd /home/peter/jq-1.8.1 && make install mkdir -p src
GEN src/version.h
make install-recursive
make[1]: Entering directory '/home/peter/jq-1.8.1'
Making install in vendor/oniguruma
make[2]: Entering directory '/home/peter/jq-1.8.1/vendor/oniguruma'
Making install in src
make[3]: Entering directory '/home/peter/jq-1.8.1/vendor/oniguruma/src'
make[4]: Entering directory '/home/peter/jq-1.8.1/vendor/oniguruma/src'
/usr/bin/mkdir -p '/home/peter/result/lib'
/bin/bash ../libtool --mode=install /usr/bin/install -c libonig.la '/home/peter/result/lib'
libtool: install: /usr/bin/install -c .libs/libonig.lai /home/peter/result/lib/libonig.la
libtool: install: /usr/bin/install -c .libs/libonig.a /home/peter/result/lib/libonig.a
libtool: install: chmod 644 /home/peter/result/lib/libonig.a
libtool: install: ranlib /home/peter/result/lib/libonig.a
libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/sbin" ldconfig -n /home/peter/result/lib
----------------------------------------------------------------------
Libraries have been installed in:
/home/peter/result/lib
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the 'LD_RUN_PATH' environment variable
during linking
- use the '-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to '/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
/usr/bin/mkdir -p '/home/peter/result/include'
/usr/bin/install -c -m 644 oniguruma.h oniggnu.h '/home/peter/result/include'
make install-data-hook
make[5]: Entering directory '/home/peter/jq-1.8.1/vendor/oniguruma/src'
make[5]: Nothing to be done for 'install-data-hook'.
make[5]: Leaving directory '/home/peter/jq-1.8.1/vendor/oniguruma/src'
make[4]: Leaving directory '/home/peter/jq-1.8.1/vendor/oniguruma/src'
make[3]: Leaving directory '/home/peter/jq-1.8.1/vendor/oniguruma/src'
Making install in test
make[3]: Entering directory '/home/peter/jq-1.8.1/vendor/oniguruma/test'
make[4]: Entering directory '/home/peter/jq-1.8.1/vendor/oniguruma/test'
make[4]: Nothing to be done for 'install-exec-am'.
make[4]: Nothing to be done for 'install-data-am'.
make[4]: Leaving directory '/home/peter/jq-1.8.1/vendor/oniguruma/test'
make[3]: Leaving directory '/home/peter/jq-1.8.1/vendor/oniguruma/test'
Making install in sample
make[3]: Entering directory '/home/peter/jq-1.8.1/vendor/oniguruma/sample'
make[4]: Entering directory '/home/peter/jq-1.8.1/vendor/oniguruma/sample'
make[4]: Nothing to be done for 'install-exec-am'.
make[4]: Not
[command output truncated]
p '/home/peter/result/bin'
/usr/bin/install -c onig-config '/home/peter/result/bin'
/usr/bin/mkdir -p '/home/peter/result/lib/pkgconfig'
/usr/bin/install -c -m 644 oniguruma.pc '/home/peter/result/lib/pkgconfig'
make[4]: Leaving directory '/home/peter/jq-1.8.1/vendor/oniguruma'
make[3]: Leaving directory '/home/peter/jq-1.8.1/vendor/oniguruma'
make[2]: Leaving directory '/home/peter/jq-1.8.1/vendor/oniguruma'
make[2]: Entering directory '/home/peter/jq-1.8.1'
mkdir -p src
GEN src/version.h
CC src/main.o
CCLD jq
make[3]: Entering directory '/home/peter/jq-1.8.1'
mkdir -p src
GEN src/version.h
CC src/main.o
CCLD jq
/usr/bin/mkdir -p '/home/peter/result/lib'
/bin/bash ./libtool --mode=install /usr/bin/install -c libjq.la '/home/peter/result/lib'
libtool: install: /usr/bin/install -c .libs/libjq.lai /home/peter/result/lib/libjq.la
libtool: install: /usr/bin/install -c .libs/libjq.a /home/peter/result/lib/libjq.a
libtool: install: chmod 644 /home/peter/result/lib/libjq.a
libtool: install: ranlib /home/peter/result/lib/libjq.a
libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/sbin" ldconfig -n /home/peter/result/lib
----------------------------------------------------------------------
Libraries have been installed in:
/home/peter/result/lib
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the 'LD_RUN_PATH' environment variable
during linking
- use the '-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to '/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
/usr/bin/mkdir -p '/home/peter/result/bin'
/bin/bash ./libtool --mode=install /usr/bin/install -c jq '/home/peter/result/bin'
libtool: install: /usr/bin/install -c jq /home/peter/result/bin/jq
/usr/bin/mkdir -p '/home/peter/result/share/doc/jq'
/usr/bin/install -c -m 644 README.md NEWS.md COPYING AUTHORS '/home/peter/result/share/doc/jq'
/usr/bin/mkdir -p '/home/peter/result/include'
/usr/bin/install -c -m 644 src/jv.h src/jq.h '/home/peter/result/include'
/usr/bin/mkdir -p '/home/peter/result/share/man/man1'
/usr/bin/install -c -m 644 jq.1 '/home/peter/result/share/man/man1'
/usr/bin/mkdir -p '/home/peter/result/lib/pkgconfig'
/usr/bin/install -c -m 644 libjq.pc '/home/peter/result/lib/pkgconfig'
make[3]: Leaving directory '/home/peter/jq-1.8.1'
make[2]: Leaving directory '/home/peter/jq-1.8.1'
make[1]: Leaving directory '/home/peter/jq-1.8.1'
↓ 112 lines
mkdir -p src
GEN src/version.h
make install-recursive
make[1]: Entering directory '/home/peter/jq-1.8.1'
Making install in vendor/oniguruma
make[2]: Entering directory '/home/peter/jq-1.8.1/vendor/oniguruma'
Making install in src
make[3]: Entering directory '/home/peter/jq-1.8.1/vendor/oniguruma/src'
make[4]: Entering directory '/home/peter/jq-1.8.1/vendor/oniguruma/src'
/usr/bin/mkdir -p '/home/peter/result/lib'
/bin/bash ../libtool --mode=install /usr/bin/install -c libonig.la '/home/peter/result/lib'
libtool: install: /usr/bin/install -c .libs/libonig.lai /home/peter/result/lib/libonig.la
libtool: install: /usr/bin/install -c .libs/libonig.a /home/peter/result/lib/libonig.a
libtool: install: chmod 644 /home/peter/result/lib/libonig.a
libtool: install: ranlib /home/peter/result/lib/libonig.a
libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/sbin" ldconfig -n /home/peter/result/lib
----------------------------------------------------------------------
Libraries have been installed in:
/home/peter/result/lib
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the 'LD_RUN_PATH' environment variable
during linking
- use the '-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to '/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
/usr/bin/mkdir -p '/home/peter/result/include'
/usr/bin/install -c -m 644 oniguruma.h oniggnu.h '/home/peter/result/include'
make install-data-hook
make[5]: Entering directory '/home/peter/jq-1.8.1/vendor/oniguruma/src'
make[5]: Nothing to be done for 'install-data-hook'.
make[5]: Leaving directory '/home/peter/jq-1.8.1/vendor/oniguruma/src'
make[4]: Leaving directory '/home/peter/jq-1.8.1/vendor/oniguruma/src'
make[3]: Leaving directory '/home/peter/jq-1.8.1/vendor/oniguruma/src'
Making install in test
make[3]: Entering directory '/home/peter/jq-1.8.1/vendor/oniguruma/test'
make[4]: Entering directory '/home/peter/jq-1.8.1/vendor/oniguruma/test'
make[4]: Nothing to be done for 'install-exec-am'.
make[4]: Nothing to be done for 'install-data-am'.
make[4]: Leaving directory '/home/peter/jq-1.8.1/vendor/oniguruma/test'
make[3]: Leaving directory '/home/peter/jq-1.8.1/vendor/oniguruma/test'
Making install in sample
make[3]: Entering directory '/home/peter/jq-1.8.1/vendor/oniguruma/sample'
make[4]: Entering directory '/home/peter/jq-1.8.1/vendor/oniguruma/sample'
make[4]: Nothing to be done for 'install-exec-am'.
make[4]: Not
[command output truncated]
p '/home/peter/result/bin'
/usr/bin/install -c onig-config '/home/peter/result/bin'
/usr/bin/mkdir -p '/home/peter/result/lib/pkgconfig'
/usr/bin/install -c -m 644 oniguruma.pc '/home/peter/result/lib/pkgconfig'
make[4]: Leaving directory '/home/peter/jq-1.8.1/vendor/oniguruma'
make[3]: Leaving directory '/home/peter/jq-1.8.1/vendor/oniguruma'
make[2]: Leaving directory '/home/peter/jq-1.8.1/vendor/oniguruma'
make[2]: Entering directory '/home/peter/jq-1.8.1'
mkdir -p src
GEN src/version.h
CC src/main.o
CCLD jq
make[3]: Entering directory '/home/peter/jq-1.8.1'
mkdir -p src
GEN src/version.h
CC src/main.o
CCLD jq
/usr/bin/mkdir -p '/home/peter/result/lib'
/bin/bash ./libtool --mode=install /usr/bin/install -c libjq.la '/home/peter/result/lib'
libtool: install: /usr/bin/install -c .libs/libjq.lai /home/peter/result/lib/libjq.la
libtool: install: /usr/bin/install -c .libs/libjq.a /home/peter/result/lib/libjq.a
libtool: install: chmod 644 /home/peter/result/lib/libjq.a
libtool: install: ranlib /home/peter/result/lib/libjq.a
libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/sbin" ldconfig -n /home/peter/result/lib
----------------------------------------------------------------------
Libraries have been installed in:
/home/peter/result/lib
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the 'LD_RUN_PATH' environment variable
during linking
- use the '-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to '/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
/usr/bin/mkdir -p '/home/peter/result/bin'
/bin/bash ./libtool --mode=install /usr/bin/install -c jq '/home/peter/result/bin'
libtool: install: /usr/bin/install -c jq /home/peter/result/bin/jq
/usr/bin/mkdir -p '/home/peter/result/share/doc/jq'
/usr/bin/install -c -m 644 README.md NEWS.md COPYING AUTHORS '/home/peter/result/share/doc/jq'
/usr/bin/mkdir -p '/home/peter/result/include'
/usr/bin/install -c -m 644 src/jv.h src/jq.h '/home/peter/result/include'
/usr/bin/mkdir -p '/home/peter/result/share/man/man1'
/usr/bin/install -c -m 644 jq.1 '/home/peter/result/share/man/man1'
/usr/bin/mkdir -p '/home/peter/result/lib/pkgconfig'
/usr/bin/install -c -m 644 libjq.pc '/home/peter/result/lib/pkgconfig'
make[3]: Leaving directory '/home/peter/jq-1.8.1'
make[2]: Leaving directory '/home/peter/jq-1.8.1'
make[1]: Leaving directory '/home/peter/jq-1.8.1'
compile-bench> cp -f /home/peter/jq-1.8.1/jq.static /home/peter/result/bin/jq && chmod +x /home/peter/result/bin/jq && rm -f /home/peter/result/jq && ln -s /home/peter/result/bin/jq /home/peter/result/jq && ls -l /home/peter/result/bin/jq /home/peter/result/jq -rwxr-xr-x 1 peter peter 2291048 Sep 16 22:09 /home/peter/result/bin/jq
lrwxrwxrwx 1 peter peter 25 Sep 16 22:09 /home/peter/result/jq -> /home/peter/result/bin/jq
↓ 3 lines
-rwxr-xr-x 1 peter peter 2291048 Sep 16 22:09 /home/peter/result/bin/jq lrwxrwxrwx 1 peter peter 25 Sep 16 22:09 /home/peter/result/jq -> /home/peter/result/bin/jq
Show reasoning
Verifying symlink and binary
I need to verify that /home/peter/result/jq is a symlink pointing to a binary file, and confirm whether that binary is static. I'll run the file command to check the type of file it is. Then, I’ll use ldd on /home/peter/result/bin/jq to see if it has any dynamic dependencies. This step is crucial to ensure the binary is standalone and doesn't require additional libraries to run.
compile-bench> file /home/peter/result/bin/jq && ldd /home/peter/result/bin/jq || true /home/peter/result/bin/jq: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, BuildID[sha1]=59adf516162ae9a8411c312bf9c549c1d12820c5, for GNU/Linux 3.2.0, stripped
not a dynamic executable
↓ 3 lines
/home/peter/result/bin/jq: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, BuildID[sha1]=59adf516162ae9a8411c312bf9c549c1d12820c5, for GNU/Linux 3.2.0, stripped not a dynamic executable
jq-1.8.1
Show reasoning
Summarizing binary installation details
I've configured the source with the prefix set to /home/peter/result and built with static flags, using vendor Oniguruma. I created and installed jq as a static binary in /home/peter/jq-1.8.1, with the symlink pointing to /home/peter/result/jq. I've confirmed it’s statically linked, with outputs showing "statically linked" and version 'jq-1.8.1'. The key commands used will be listed for reproducibility, but I'll make sure to keep it concise.
Done.
What I did
- Extracted and configured the jq-1.8.1 source from /home/peter/jq.tar.gz with prefix=/home/peter/result and built the bundled oniguruma.
- Built a statically linked jq binary.
- Installed the package into /home/peter/result (libraries, headers, manpage, etc.).
- Replaced the installed binary with the statically linked one and created the requested symlink.
Where to find things
- Static binary: /home/peter/result/bin/jq
- Symlink: /home/peter/result/jq -> /home/peter/result/bin/jq
- Build tree: /home/peter/jq-1.8.1 (I also left intermediate build artifacts there)
Verification
- The installed binary is statically linked:
file /home/peter/result/bin/jq
-> ELF 64-bit ... statically linked, ... (stated as statically linked)
- The binary runs and reports the expected version:
/home/peter/result/jq --version
-> jq-1.8.1
If you want, I can:
- Strip the binary further or recompress it.
- Provide the exact build commands used in a script for reproducibility.