openwall / john

John the Ripper jumbo - advanced offline password cracker, which supports hundreds of hash and cipher types, and runs on many operating systems, CPUs, GPUs, and even some FPGAs
https://www.openwall.com/john/
Other
10.02k stars 2.07k forks source link

make[1]: execvp: gcc: The parameter or environment lists are too long #2150

Closed huanghemengxi closed 8 years ago

huanghemengxi commented 8 years ago

Hi, I encountered several problems in the compiler, I hope to get everyone's help, thank you. This is one of the questions. Since it is translated into English by the translation software, the statement is not in place, please forgive me. Error prompt: execvp:: gcc: The parameter or environment lists are too long. make[1] The environment is configured as follows: Operating system: Version AIX 5.2 Make version: Make GNU 3.81

GCC version: version 4.6.1 GCC (GCC)

大家好,我在编译程序遇到几个问题,希望得到大家的帮助,谢谢。这是其中一个问题。由于是通过翻译软件翻译成了英文,语句不通之处请谅解。 报错提示:make[1]: execvp: gcc: The parameter or environment lists are too long. 环境配置如下: 操作系统:AIX Version 5.2 make版本:GNU Make 3.81 gcc版本:gcc version 4.6.1 (GCC)


gcc jumbo.o john-mpi.o DES_fmt.o DES_std.o DES_bs.o DES_bs_b.o BSDI_fmt.o MD5_fmt.o MD5_std.o cryptmd5_common.o BF_fmt.o BF_std.o BF_common.o scrypt_fmt.o escrypt/crypto_scrypt-best.o escrypt/crypto_scrypt-common.o escrypt/sha256.o AFS_fmt.o LM_fmt.o trip_fmt.o NT_fmt.o KeccakDuplex.o KeccakF-1600-opt64.o KeccakHash.o KeccakSponge.o whirlpool.o haval.o skein.o md2.o panama.o timer.o md5.o rc4.o hmacmd5.o base64.o base64_convert.o md4.o sha2.o dynamic_fmt.o dynamic_parser.o dynami c_preloads.o dynamic_utils.o dynamic_big_crypt.o dynamic_compiler.o dynamic_compiler_lib.o ripemd.o tiger.o ssh2john.o pf x2john.o unrarcmd.o unrarfilter.o unrarhlp.o unrar.o unrarppm.o unrarvm.o rar2john.o zip2john.o pkzip.o racf2john.o dmg2j ohn.o keepass2john.o hccap2john.o 7z_fmt_plug.o AzureAD_common_plug.o AzureAD_fmt_plug.o BFEgg_fmt_plug.o DMD5_fmt_plug.o DOMINOSEC8_fmt_plug.o DOMINOSEC_fmt_plug.o EPI_fmt_plug.o FGT_fmt_plug.o HDAA_fmt_plug.o IPB2_fmt_plug.o KRB4_fmt_plug.o KRB4_std_plug.o KRB5_fmt_plug.o KRB5_std_plug.o MSCHAPv2_bs_fmt_plug.o NETLM_fmt_plug.o NETLMv2_fmt_plug.o NETNTLM_bs_fm t_plug.o NETNTLMv2_fmt_plug.o NETSPLITLM_fmt_plug.o NS_fmt_plug.o PHPS2_fmt_plug.o PHPS_fmt_plug.o PO_fmt_plug.o SKEY_fmt _plug.o SKEY_jtr_plug.o SybaseASE_fmt_plug.o SybasePROP_fmt_plug.o XSHA512_fmt_plug.o XSHA_fmt_plug.o aes_xts_plug.o agil ekeychain_fmt_plug.o aix_smd5_fmt_plug.o aix_ssha_fmt_plug.o androidfde_fmt_plug.o asaMD5_fmt_plug.o asn1plug.o axcrypt fmt_plug.o bcrypt_pbkdf_plug.o bitcoin_fmt_plug.o blackberry_ES10_fmt_plug.o blake2b-ref_plug.o blake2b_plug.o blf_plug.o blockchain_fmt_plug.o chap_fmt_plug.o citrix_ns_fmt_plug.o clipperz_srp_fmt_plug.o cloudkeychain_fmt_plug.o cq_fmt_plug. o crc32_fmt_plug.o crypt-sha1_fmt_plug.o cryptsha256_fmt_plug.o cryptsha512_fmt_plug.o cuda_cryptmd5_fmt_plug.o cuda_cryp tsha256_fmt_plug.o cuda_cryptsha512_fmt_plug.o cuda_mscash2_fmt_plug.o cuda_mscash_fmt_plug.o cuda_phpass_fmt_plug.o cuda _pwsafe_fmt_plug.o cuda_rawsha512_fmt_plug.o cuda_wpapsk_fmt_plug.o cuda_xsha512_fmt_plug.o dahua_fmt_plug.o django_fmt_p lug.o django_scrypt_fmt_plug.o dmg_fmt_plug.o dragonfly3_fmt_plug.o dragonfly4_fmt_plug.o drupal7_fmt_plug.o dynamic_comp iler_fmt_plug.o ecryptfs_fmt_plug.o efs_fmt_plug.o eigrp_fmt_plug.o encfs_common_plug.o encfs_fmt_plug.o episerver_fmt_pl ug.o feal8_plug.o formspring_fmt_plug.o gost3411-2012-sse41_plug.o gost3411-tables_plug.o gost_fmt_plug.o gpg_common_plug .o gpg_fmt_plug.o has160_fmt_plug.o has160_plug.o haval_fmt_plug.o hmacMD5_fmt_plug.o hmacSHA1_fmt_plug.o hmacSHA256fmt plug.o hmacSHA512_fmt_plug.o hmac_sha_plug.o hmailserver_fmt_plug.o hsrp_fmt_plug.o idea_plug.o ike_fmt_plug.o iwork_comm on_plug.o iwork_fmt_plug.o keepass_fmt_plug.o keychain_fmt_plug.o keyring_fmt_plug.o keystore_common_plug.o keystorefmt plug.o known_hosts_fmt_plug.o krb5-18_fmt_plug.o krb5_tgs_fmt_plug.o krb5pa-md5_fmt_plug.o krb5pa-sha1_fmt_plug.o kwallet _fmt_plug.o lastpass_fmt_plug.o lastpass_sniffed_fmt_plug.o lotus5_fmt_plug.o lotus85_fmt_plug.o luks_fmt_plug.o md2fmt plug.o mdc2_fmt_plug.o mdc2dgst_plug.o mediawiki_fmt_plug.o mongodb_fmt_plug.o mozilla_ng_fmt_plug.o mscash1_fmt_plug.o m scash2_fmt_plug.o mscash_common_plug.o mssql-old_fmt_plug.o mssql05_fmt_plug.o mssql12_fmt_plug.o mysqlSHA1_fmt_plug.o my sql_fmt_plug.o mysql_netauth_fmt_plug.o net_md5_fmt_plug.o net_sha1_fmt_plug.o nt2_fmt_plug.o ntlmv1_mschapv2_fmt_plug.o nukedclan_fmt_plug.o o5logon_fmt_plug.o odf_fmt_plug.o office_common_plug.o office_fmt_plug.o oldoffice_fmt_plug.o openbs dsoftraid_fmt_plug.o opencl_7z_fmt_plug.o opencl_DES_bs_b_plug.o opencl_DES_bs_f_plug.o opencl_DES_bs_h_plug.o opencl_DES _bs_plug.o opencl_DES_fmt_plug.o opencl_agilekeychain_fmt_plug.o opencl_bf_fmt_plug.o opencl_bf_std_plug.o opencl_blockch ain_fmt_plug.o opencl_cryptmd5_fmt_plug.o opencl_cryptsha256_fmt_plug.o opencl_cryptsha512_fmt_plug.o opencl_dmg_fmt_plug .o opencl_encfs_fmt_plug.o opencl_gpg_fmt_plug.o opencl_hash_check_128_plug.o opencl_iwork_fmt_plug.o opencl_keychain_fmt _plug.o opencl_keyring_fmt_plug.o opencl_keystore_fmt_plug.o opencl_krb5pa-md5_fmt_plug.o opencl_krb5pa-sha1_fmt_plug.o o pencl_lm_b_plug.o opencl_lm_fmt_plug.o opencl_lm_plug.o opencl_lotus5_fmt_plug.o opencl_mscash2_fmt_plug.o opencl_mscash2 _helper_plug.o opencl_mscash_fmt_plug.o opencl_mysqlsha1_fmt_plug.o opencl_nt_fmt_plug.o opencl_ntlmv2_fmtplug.o opencl o5logon_fmt_plug.o opencl_odf_aes_fmt_plug.o opencl_odf_fmt_plug.o opencl_office2007_fmt_plug.o opencl_office2010_fmt_plu g.o opencl_office2013_fmt_plug.o opencl_oldoffice_fmt_plug.o opencl_pbkdf2_hmac_md4_fmt_plug.o opencl_pbkdf2_hmac_md5_fmt _plug.o opencl_pbkdf2_hmac_sha1_fmt_plug.o opencl_pbkdf2_hmac_sha256_fmt_plug.o opencl_pbkdf2_hmac_sha512_fmt_plug.o open cl_phpass_fmt_plug.o opencl_pwsafe_fmt_plug.o opencl_rakp_fmt_plug.o opencl_rar5_fmt_plug.o opencl_rar_fmtplug.o opencl rawmd4_fmt_plug.o opencl_rawmd5_fmt_plug.o opencl_rawsha1_fmt_plug.o opencl_rawsha256_fmt_plug.o opencl_rawsha512_fmt_plug.o opencl_rawsha512_ng_fmt_plug.o opencl_salted_sha_fmt_plug.o opencl_sha1crypt_fmt_plug.o opencl_sha2_common_plug.o ope ncl_strip_fmt_plug.o opencl_sxc_fmt_plug.o opencl_tc_fmt_plug.o opencl_wpapsk_fmt_plug.o opencl_xsha512_fmt_plug.o opencl _zip_fmt_plug.o openssl_enc_fmt_plug.o oracle11_fmt_plug.o oracle12c_fmt_plug.o oracle_fmt_plug.o osc_fmt_plug.o panama_f mt_plug.o pbkdf2-hmac-md4_fmt_plug.o pbkdf2-hmac-md5_fmt_plug.o pbkdf2-hmac-sha1_fmt_plug.o pbkdf2-hmac-sha512_fmt_plug.o pbkdf2_hmac_common_plug.o pbkdf2_hmac_sha256_fmt_plug.o pdf_fmt_plug.o pdfcrack_md5_plug.o pem_fmt_plug.o pfx_fmt_plug.o phpassMD5_fmt_plug.o phpass_common_plug.o pixMD5_fmt_plug.o pkzip_fmt_plug.o plaintext_fmt_plug.o pomelo_fmt_plug.o pome lo_plug.o postgres_fmt_plug.o pst_fmt_plug.o putty_fmt_plug.o pwsafe_fmt_plug.o qnx_fmt_plug.o racf_fmt_plug.o radmin_fmt _plug.o rakp_fmt_plug.o rar5_fmt_plug.o rar_fmt_plug.o rawBLAKE2_512_fmt_plug.o rawKeccak_256_fmt_plug.o rawKeccak_512_fm t_plug.o rawMD4_fmt_plug.o rawMD5_fmt_plug.o rawMD5flat_fmt_plug.o rawSHA0_fmt_plug.o rawSHA1_common_plug.o rawSHA1_fmt_p lug.o rawSHA1_linkedIn_fmt_plug.o rawSHA1_ng_fmt_plug.o rawSHA224_fmt_plug.o rawSHA256_common_plug.o rawSHA256_fmt_plug.o rawSHA256_ng_fmt_plug.o rawSHA384_fmt_plug.o rawSHA512_common_plug.o rawSHA512_fmt_plug.o rawSHA512_ng_fmt_plug.o rawmd5 u_fmt_plug.o ripemd_fmt_plug.o rsvp_fmt_plug.o salted_sha1_common_plug.o salted_sha1_fmt_plug.o sapB_fmt_plug.o sapGfmt plug.o sapH_fmt_plug.o sha1crypt_common_plug.o sha3_512_fmt_plug.o siemens-s7_fmt_plug.o sip_fmt_plug.o skein_fmt_plug.o snefru_fmt_plug.o snefru_plug.o ssh_fmt_plug.o ssh_ng_fmt_plug.o ssha512_fmt_plug.o stribog_fmt_plug.o strip_fmt_plug.o s unmd5_fmt_plug.o sxc_fmt_plug.o syb-prop_repro_plug.o tcp_md5_fmt_plug.o tiger_fmt_plug.o truecrypt_fmt_plug.o twofish_pl ug.o vdi_fmt_plug.o vms_fmt_plug.o vnc_fmt_plug.o vtp_fmt_plug.o wbb3_fmt_plug.o whirlpool_fmt_plug.o wow_srp_fmt_plug.o wpapsk_fmt_plug.o zip_fmt_plug.o dyna_salt.o dummy.o gost.o common-gpu.o batch.o bench.o charset.o common.o compiler.o co nfig.o cracker.o crc32.o external.o formats.o getopt.o idle.o inc.o john.o list.o loader.o logger.o mask.o mask_ext.o mat h.o memory.o misc.o options.o params.o path.o recovery.o rpp.o rules.o signals.o single.o status.o tty.o wordlist.o mkv. o mkvlib.o listconf.o fake_salts.o win32_memmap.o unicode.o unshadow.o unafs.o undrop.o regex.o pp.o c3_fmt.o unique.o pu tty2john.o gpg2john.o memdbg.o -g -L/usr/local/lib -L/opt/freeware/lib -lssl -lcrypto -D_THREAD_SAFE -lpthr eads -lm -lz -ldl aes/aes.a -o ../run/john make[1]: execvp: gcc: The parameter or environment lists are too long. make[1]: * [../run/john] Error 127 make[1]: Leaving directory `/opt/Johnb/src' make: * [default] Error 2

solardiz commented 8 years ago

Ouch. Excluding opencl.o and cuda.o would shorten this line quite a bit. We could have that as default when doing non-OpenCL, non-CUDA builds. As a longer-term workaround, we could start building several .a files out of related groups of .o's, then list the .a files (static libraries) on $(CC)'s command line. We could also look for and use OS-specific ways to increase the allowed argv+envp size:

http://www.in-ulm.de/~mascheck/various/argmax/

"The limit on AIX 5.1 can be changed at run time with "chdev -l sys0 -a ncargs=value", in the range from 6_4KB to 1024_4KB."

Actually, 24 KB isn't that bad. Perhaps the particular system has a lot of env vars set, and unsetting some of them will make the build succeed. Our command line itself appears to be around 8 KB.

huanghemengxi commented 8 years ago

Hello, solardiz:    After you said the way to the makefile among opencl * o and cuda * o cancel compiled newspaper ld:.. 0711-317 ERROR: Undefined symbol: .posix_memalign error involving memory.c and scrypt_platform.c file which already contains the stdlib.h, but still reported the error. The AIX6.1 above stdlib.h cover AIX5.2 after the problem is still there.

你好,solardiz: 按你说的办法把makefile文件当中opencl.o and cuda.o取消后在编译报ld: 0711-317 ERROR: Undefined symbol: .posix_memalign错误,涉及到memory.c和scrypt_platform.c文件当中已经包含了stdlib.h,但还是报这个错误。把AIX6.1上面的stdlib.h覆盖到AIX5.2后问题依旧。

gcc jumbo.o john-mpi.o DES_fmt.o DES_std.o DES_bs.o DES_bs_b.o BSDI_fmt.o MD5_fmt.o MD5_std.o cryptmd5_common.o BF_fmt.o BF_std.o BF_common.o scrypt_fmt.o escrypt/crypto_scrypt-best.o escrypt/crypto_scrypt-common.o escrypt/sha256.o AFS_fmt.o LM_fmt.o trip_fmt.o NT_fmt.o KeccakDuplex.o KeccakF-1600-opt64.o KeccakHash.o KeccakSponge.o whirlpool.o haval.o skein.o md2.o panama.o timer.o md5.o rc4.o hmacmd5.o base64.o base64_convert.o md4.o sha2.o dynamic_fmt.o dynamic_parser.o dynami c_preloads.o dynamic_utils.o dynamic_big_crypt.o dynamic_compiler.o dynamic_compiler_lib.o ripemd.o tiger.o ssh2john.o pf x2john.o unrarcmd.o unrarfilter.o unrarhlp.o unrar.o unrarppm.o unrarvm.o rar2john.o zip2john.o pkzip.o racf2john.o dmg2j ohn.o keepass2john.o hccap2john.o 7z_fmt_plug.o AzureAD_common_plug.o AzureAD_fmt_plug.o BFEgg_fmt_plug.o DMD5_fmt_plug.o DOMINOSEC8_fmt_plug.o DOMINOSEC_fmt_plug.o EPI_fmt_plug.o FGT_fmt_plug.o HDAA_fmt_plug.o IPB2_fmt_plug.o KRB4_fmt_plug.o KRB4_std_plug.o KRB5_fmt_plug.o KRB5_std_plug.o MSCHAPv2_bs_fmt_plug.o NETLM_fmt_plug.o NETLMv2_fmt_plug.o NETNTLM_bs_fm t_plug.o NETNTLMv2_fmt_plug.o NETSPLITLM_fmt_plug.o NS_fmt_plug.o PHPS2_fmt_plug.o PHPS_fmt_plug.o PO_fmt_plug.o SKEY_fmt _plug.o SKEY_jtr_plug.o SybaseASE_fmt_plug.o SybasePROP_fmt_plug.o XSHA512_fmt_plug.o XSHA_fmt_plug.o aes_xts_plug.o agil ekeychain_fmt_plug.o aix_smd5_fmt_plug.o aix_ssha_fmt_plug.o androidfde_fmt_plug.o asaMD5_fmt_plug.o asn1plug.o axcrypt fmt_plug.o bcrypt_pbkdf_plug.o bitcoin_fmt_plug.o blackberry_ES10_fmt_plug.o blake2b-ref_plug.o blake2b_plug.o blf_plug.o blockchain_fmt_plug.o chap_fmt_plug.o citrix_ns_fmt_plug.o clipperz_srp_fmt_plug.o cloudkeychain_fmt_plug.o cq_fmt_plug. o crc32_fmt_plug.o crypt-sha1_fmt_plug.o cryptsha256_fmt_plug.o cryptsha512_fmt_plug.o dahua_fmt_plug.o django_fmt_plu g.o django_scrypt_fmt_plug.o dmg_fmt_plug.o dragonfly3_fmt_plug.o dragonfly4_fmt_plug.o drupal7_fmt_plug.o dynamic_compil er_fmt_plug.o ecryptfs_fmt_plug.o efs_fmt_plug.o eigrp_fmt_plug.o encfs_common_plug.o encfs_fmt_plug.o episerver_fmt_plug .o feal8_plug.o formspring_fmt_plug.o gost3411-2012-sse41_plug.o gost3411-tables_plug.o gost_fmt_plug.o gpg_common_plug.o gpg_fmt_plug.o has160_fmt_plug.o has160_plug.o haval_fmt_plug.o hmacMD5_fmt_plug.o hmacSHA1_fmt_plug.o hmacSHA256_fmt_pl ug.o hmacSHA512_fmt_plug.o hmac_sha_plug.o hmailserver_fmt_plug.o hsrp_fmt_plug.o idea_plug.o ike_fmt_plug.o iwork_common _plug.o iwork_fmt_plug.o keepass_fmt_plug.o keychain_fmt_plug.o keyring_fmt_plug.o keystore_common_plug.o keystore_fmt_pl ug.o known_hosts_fmt_plug.o krb5-18_fmt_plug.o krb5_tgs_fmt_plug.o krb5pa-md5_fmt_plug.o krb5pa-sha1_fmt_plug.o kwallet_f mt_plug.o lastpass_fmt_plug.o lastpass_sniffed_fmt_plug.o lotus5_fmt_plug.o lotus85_fmt_plug.o luks_fmt_plug.o md2_fmt_pl ug.o mdc2_fmt_plug.o mdc2dgst_plug.o mediawiki_fmt_plug.o mongodb_fmt_plug.o mozilla_ng_fmt_plug.o mscash1_fmt_plug.o msc ash2_fmt_plug.o mscash_common_plug.o mssql-old_fmt_plug.o mssql05_fmt_plug.o mssql12_fmt_plug.o mysqlSHA1_fmt_plug.o mysq l_fmt_plug.o mysql_netauth_fmt_plug.o net_md5_fmt_plug.o net_sha1_fmt_plug.o nt2_fmt_plug.o ntlmv1_mschapv2_fmt_plug.o nu kedclan_fmt_plug.o o5logon_fmt_plug.o odf_fmt_plug.o office_common_plug.o office_fmt_plug.o oldoffice_fmt_plug.o openbsds oftraid_fmt_plug.o openssl_enc_fmt_plug.o oracle11_fmt_plug.o oracle12c_fmt_plug.o oracle_fmt_plug.o osc_fmt_plug.o panam a_fmt_plug.o pbkdf2-hmac-md4_fmt_plug.o pbkdf2-hmac-md5_fmt_plug.o pbkdf2-hmac-sha1_fmt_plug.o pbkdf2-hmac-sha512_fmt_plu g.o pbkdf2_hmac_common_plug.o pbkdf2_hmac_sha256_fmt_plug.o pdf_fmt_plug.o pdfcrack_md5_plug.o pem_fmt_plug.o pfx_fmt_plu g.o phpassMD5_fmt_plug.o phpass_common_plug.o pixMD5_fmt_plug.o pkzip_fmt_plug.o plaintext_fmt_plug.o pomelo_fmt_plug.o p omelo_plug.o postgres_fmt_plug.o pst_fmt_plug.o putty_fmt_plug.o pwsafe_fmt_plug.o qnx_fmt_plug.o racf_fmtplug.o radmin fmt_plug.o rakp_fmt_plug.o rar5_fmt_plug.o rar_fmt_plug.o rawBLAKE2_512_fmt_plug.o rawKeccak_256_fmt_plug.o rawKeccak_512 _fmt_plug.o rawMD4_fmt_plug.o rawMD5_fmt_plug.o rawMD5flat_fmt_plug.o rawSHA0_fmt_plug.o rawSHA1_common_plug.o rawSHA1_fm t_plug.o rawSHA1_linkedIn_fmt_plug.o rawSHA1_ng_fmt_plug.o rawSHA224_fmt_plug.o rawSHA256_common_plug.o rawSHA256_fmt_plu g.o rawSHA256_ng_fmt_plug.o rawSHA384_fmt_plug.o rawSHA512_common_plug.o rawSHA512_fmt_plug.o rawSHA512_ng_fmt_plug.o raw md5u_fmt_plug.o ripemd_fmt_plug.o rsvp_fmt_plug.o salted_sha1_common_plug.o salted_sha1_fmt_plug.o sapB_fmt_plug.o sapG_f mt_plug.o sapH_fmt_plug.o sha1crypt_common_plug.o sha3_512_fmt_plug.o siemens-s7_fmt_plug.o sip_fmt_plug.o skein_fmt_plug .o snefru_fmt_plug.o snefru_plug.o ssh_fmt_plug.o ssh_ng_fmt_plug.o ssha512_fmt_plug.o stribog_fmt_plug.o strip_fmt_plug. o sunmd5_fmt_plug.o sxc_fmt_plug.o syb-prop_repro_plug.o tcp_md5_fmt_plug.o tiger_fmt_plug.o truecrypt_fmt_plug.o twofish _plug.o vdi_fmt_plug.o vms_fmt_plug.o vnc_fmt_plug.o vtp_fmt_plug.o wbb3_fmt_plug.o whirlpool_fmt_plug.o wow_srp_fmt_plug .o wpapsk_fmt_plug.o zip_fmt_plug.o dyna_salt.o dummy.o gost.o common-gpu.o batch.o bench.o charset.o common.o compiler.o config.o cracker.o crc32.o external.o formats.o getopt.o idle.o inc.o john.o list.o loader.o logger.o mask.o mask_ext.o math.o memory.o misc.o options.o params.o path.o recovery.o rpp.o rules.o signals.o single.o status.o tty.o wordlist.o m kv.o mkvlib.o listconf.o fake_salts.o win32_memmap.o unicode.o unshadow.o unafs.o undrop.o regex.o pp.o c3_fmt.o unique.o putty2john.o gpg2john.o memdbg.o -g -L/usr/local/lib -L/opt/freeware/lib -lssl -lcrypto -D_THREAD_SAFE -lp threads -lm -lz -ldl aes/aes.a -o ../run/john ld: 0711-317 ERROR: Undefined symbol: .posix_memalign ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information. collect2: ld returned 8 exit status make[1]: *\ [../run/john] Error 1 make[1]: Leaving directory `/opt/Johnb/src'

magnumripper commented 8 years ago

That's #2153.