#65933 closed defect (fixed)

git @2.38.0 does not build with gcc-4.2, because wrong number of arguments specified for ‘deprecated’ attribute

Reported by: ballapete (Peter "Pete" Dyballa) Owned by: kencu (Ken)
Priority: Normal Milestone:
Component: ports Version: 2.7.2
Keywords: leopard tiger haspatch Cc: ciserlohn@…, herby.gillot@…
Port: git

Description

make: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_git/git/work/git-2.38.0'
GIT_VERSION = 2.38.0
make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_git/git/work/git-2.38.0'
make: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_git/git/work/git-2.38.0'
    * new build flags
/bin/sh ./generate-cmdlist.sh \
		 \
		command-list.txt >command-list.h
/bin/sh ./generate-configlist.sh >config-list.h
/bin/sh ./generate-hooklist.sh >hook-list.h
/usr/bin/gcc-4.2 -o fuzz-commit-graph.o -c     -Os -std=gnu99 -arch ppc -I. -DPRECOMPOSE_UNICODE -DPROTECT_HFS_DEFAULT=1 -DGIT_HOST_CPU="\"Power\"" -DUSE_LIBPCRE2 -I/opt/local/include -I/opt/local/include -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -I/opt/local/include -DUSE_ST_TIMESPEC -DSUPPORTS_SIMPLE_IPC -DSHA1_APPLE -DSHA256_BLK -DSHA1_MAX_BLOCK_SIZE="1024L*1024L*1024L"  -DHAVE_DEV_TTY -DHAVE_BSD_SYSCTL -DHAVE_ARC4RANDOM -DHAVE_NS_GET_EXECUTABLE_PATH  -DAPPLE_COMMON_CRYPTO -DFREAD_READS_DIRECTORIES -DCOMMON_DIGEST_FOR_OPENSSL -DNO_MEMMEM -Icompat/regex -DHAVE_FSMONITOR_OS_SETTINGS -DSHELL_PATH='"/bin/sh"'  fuzz-commit-graph.c
In file included from commit-graph.h:4,
                 from fuzz-commit-graph.c:1:
git-compat-util.h:408: error: wrong number of arguments specified for ‘deprecated’ attribute
git-compat-util.h:409: error: wrong number of arguments specified for ‘deprecated’ attribute
git-compat-util.h:410: error: wrong number of arguments specified for ‘deprecated’ attribute
git-compat-util.h:504: error: wrong number of arguments specified for ‘deprecated’ attribute
In file included from commit-graph.h:5,
                 from fuzz-commit-graph.c:1:
object-store.h:144: error: wrong number of arguments specified for ‘deprecated’ attribute
make: *** [fuzz-commit-graph.o] Error 1
make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.}}}

Attachments (2)

main.log (25.6 KB) - added by ballapete (Peter "Pete" Dyballa) 18 months ago.
Main.log from PPC Leopard
patch-git-older-gcc-deprecated.diff (365 bytes) - added by kencu (Ken) 18 months ago.

Download all attachments as: .zip

Change History (18)

Changed 18 months ago by ballapete (Peter "Pete" Dyballa)

Attachment: main.log added

Main.log from PPC Leopard

comment:1 Changed 18 months ago by kencu (Ken)

this was fixed by editing git-compat-util.h and removing the extra deprecated attribute.

$ diff -u git-compat-util.h.orig git-compat-util.h
--- git-compat-util.h.orig	2022-10-12 20:01:13.000000000 -0700
+++ git-compat-util.h	2022-10-12 20:01:53.000000000 -0700
@@ -190,8 +190,7 @@
 #define _SGI_SOURCE 1
 
 #if defined(__GNUC__)
-#define UNUSED __attribute__((unused)) \
-	__attribute__((deprecated ("parameter declared as UNUSED")))
+#define UNUSED __attribute__((unused))
 #else
 #define UNUSED
 #endif

a more robust fix that tests for the earliest version of gcc that doesn't allow this to work would be needed before it could be upstreamed though.

Changed 18 months ago by kencu (Ken)

comment:2 Changed 18 months ago by kencu (Ken)

Keywords: haspatch added

comment:3 Changed 18 months ago by kencu (Ken)

Keywords: tiger added; ppc removed
Summary: git @2.38.0 does not build on PPC Leopard, Mac OS X 10.5.8, because wrong number of arguments specified for ‘deprecated’ attributegit @2.38.0 does not build with gcc-4.2, because wrong number of arguments specified for ‘deprecated’ attribute

comment:4 Changed 18 months ago by kencu (Ken)

here’s a good example of a proper-looking fix for this issue

https://github.com/lz4/lz4/commit/19df3029e234e4c48c31377c9ef5f7c940da5106

comment:5 in reply to:  1 ; Changed 18 months ago by ballapete (Peter "Pete" Dyballa)

Replying to kencu:

this was fixed by editing git-compat-util.h and removing the extra deprecated attribute.

Has this patch become part of the port? On Leopard Portfile still has a date of two weeks ago and the latest patch file is from early summer (2022)…

comment:6 in reply to:  5 Changed 18 months ago by kencu (Ken)

Replying to ballapete:

Has this patch become part of the port? On Leopard Portfile still has a date of two weeks ago and the latest patch file is from early summer (2022)…

not yet - still a hack. Needs a few minutes to make it a proper patch.

comment:7 Changed 18 months ago by kencu (Ken)

has duplicate 66038

comment:8 Changed 18 months ago by kencu (Ken)

changing

__attribute__((deprecated ("parameter declared as UNUSED"))) to

__attribute__((deprecated))

also seemed to work for me.

comment:9 Changed 17 months ago by barracuda156

Can a fix be merged? (Preferably into upstream.)

comment:10 Changed 17 months ago by ballapete (Peter "Pete" Dyballa)

port -vds build git +credential_osxkeychain +diff_highlight +doc +pcre +perl5_34 configure.compiler=macports-gcc-7 builds without need to change or patch a single file. Performing port -vds test git +credential_osxkeychain +diff_highlight +doc +pcre +perl5_34 configure.compiler=macports-gcc-7 fails a few times, particularly *** t0019-json-writer.sh *** does not succeed:

not ok 4 - simple object
#	
#		cat >expect <<-\EOF &&
#		{"a":"abc","b":42,"c":3.14,"d":true,"e":false,"f":null}
#		EOF
#		cat >input <<-\EOF &&
#		object
#			object-string a abc
#			object-int b 42
#			object-double c 2 3.140
#			object-true d
#			object-false e
#			object-null f
#		end
#		EOF
#		test-tool json-writer <input >actual &&
#		test_cmp expect actual
#	
not ok 5 - simple array
#	
#		cat >expect <<-\EOF &&
#		["abc",42,3.14,true,false,null]
#		EOF
#		cat >input <<-\EOF &&
#		array
#			array-string abc
#			array-int 42
#			array-double 2 3.140
#			array-true
#			array-false
#			array-null
#		end
#		EOF
#		test-tool json-writer <input >actual &&
#		test_cmp expect actual
#	
not ok 8 - nested inline object
#	
#		cat >expect <<-\EOF &&
#		{"a":"abc","b":42,"sub1":{"c":3.14,"d":true,"sub2":{"e":false,"f":null}}}
#		EOF
#		cat >input <<-\EOF &&
#		object
#			object-string a abc
#			object-int b 42
#			object-object sub1
#				object-double c 2 3.140
#				object-true d
#				object-object sub2
#					object-false e
#					object-null f
#				end
#			end
#		end
#		EOF
#		test-tool json-writer <input >actual &&
#		test_cmp expect actual
#	
not ok 9 - nested inline array
#	
#		cat >expect <<-\EOF &&
#		["abc",42,[3.14,true,[false,null]]]
#		EOF
#		cat >input <<-\EOF &&
#		array
#			array-string abc
#			array-int 42
#			array-array
#				array-double 2 3.140
#				array-true
#				array-array
#					array-false
#					array-null
#				end
#			end
#		end
#		EOF
#		test-tool json-writer <input >actual &&
#		test_cmp expect actual
#	
not ok 10 - nested inline object and array
#	
#		cat >expect <<-\EOF &&
#		{"a":"abc","b":42,"sub1":{"c":3.14,"d":true,"sub2":[false,null]}}
#		EOF
#		cat >input <<-\EOF &&
#		object
#			object-string a abc
#			object-int b 42
#			object-object sub1
#				object-double c 2 3.140
#				object-true d
#				object-array sub2
#					array-false
#					array-null
#				end
#			end
#		end
#		EOF
#		test-tool json-writer <input >actual &&
#		test_cmp expect actual
#	
not ok 11 - nested inline object and array 2
#	
#		cat >expect <<-\EOF &&
#		{"a":"abc","b":42,"sub1":{"c":3.14,"d":true,"sub2":[false,{"g":0,"h":1},null]}}
#		EOF
#		cat >input <<-\EOF &&
#		object
#			object-string a abc
#			object-int b 42
#			object-object sub1
#				object-double c 2 3.140
#				object-true d
#				object-array sub2
#					array-false
#					array-object
#						object-int g 0
#						object-int h 1
#					end
#					array-null
#				end
#			end
#		end
#		EOF
#		test-tool json-writer <input >actual &&
#		test_cmp expect actual
#	
not ok 12 - pretty nested inline object and array 2
#	
#		sed -e "s/^|//" >expect <<-\EOF &&
#		|{
#		|  "a": "abc",
#		|  "b": 42,
#		|  "sub1": {
#		|    "c": 3.14,
#		|    "d": true,
#		|    "sub2": [
#		|      false,
#		|      {
#		|        "g": 0,
#		|        "h": 1
#		|      },
#		|      null
#		|    ]
#		|  }
#		|}
#		EOF
#		cat >input <<-\EOF &&
#		object
#			object-string a abc
#			object-int b 42
#			object-object sub1
#				object-double c 2 3.140
#				object-true d
#				object-array sub2
#					array-false
#					array-object
#						object-int g 0
#						object-int h 1
#					end
#					array-null
#				end
#			end
#		end
#		EOF
#		test-tool json-writer -p <input >actual &&
#		test_cmp expect actual
#	
not ok 13 - inline object with no members
#	
#		cat >expect <<-\EOF &&
#		{"a":"abc","empty":{},"b":42}
#		EOF
#		cat >input <<-\EOF &&
#		object
#			object-string a abc
#			object-object empty
#			end
#			object-int b 42
#		end
#		EOF
#		test-tool json-writer <input >actual &&
#		test_cmp expect actual
#	
not ok 14 - inline array with no members
#	
#		cat >expect <<-\EOF &&
#		{"a":"abc","empty":[],"b":42}
#		EOF
#		cat >input <<-\EOF &&
#		object
#			object-string a abc
#			object-array empty
#			end
#			object-int b 42
#		end
#		EOF
#		test-tool json-writer <input >actual &&
#		test_cmp expect actual
#	
not ok 15 - larger empty example
#	
#		cat >expect <<-\EOF &&
#		{"a":"abc","empty":[{},{},{},[],{}],"b":42}
#		EOF
#		cat >input <<-\EOF &&
#		object
#			object-string a abc
#			object-array empty
#				array-object
#				end
#				array-object
#				end
#				array-object
#				end
#				array-array
#				end
#				array-object
#				end
#			end
#			object-int b 42
#		end
#		EOF
#		test-tool json-writer <input >actual &&
#		test_cmp expect actual
#	
not ok 16 - parse JSON using Perl
#	
#		cat >expect <<-\EOF &&
#		row[0].a abc
#		row[0].b 42
#		row[0].sub1 hash
#		row[0].sub1.c 3.14
#		row[0].sub1.d 1
#		row[0].sub1.sub2 array
#		row[0].sub1.sub2[0] 0
#		row[0].sub1.sub2[1] hash
#		row[0].sub1.sub2[1].g 0
#		row[0].sub1.sub2[1].h 1
#		row[0].sub1.sub2[2] null
#		EOF
#		cat >input <<-\EOF &&
#		object
#			object-string a abc
#			object-int b 42
#			object-object sub1
#				object-double c 2 3.140
#				object-true d
#				object-array sub2
#					array-false
#					array-object
#						object-int g 0
#						object-int h 1
#					end
#					array-null
#				end
#			end
#		end
#		EOF
#		test-tool json-writer <input >output.json &&
#		perl "$TEST_DIRECTORY"/t0019/parse_json.perl <output.json >actual &&
#		test_cmp expect actual
#	
# failed 11 among 16 test(s)

Reason seems to be that the programme json-writer is not built:

root 458 /\ pd /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_git/git/work
root 459 /\ find . -name "json*" -ls
101785320      4 -rw-r--r--   1 macports admin         730 Nov 11 20:39 ./git-2.38.1/.depend/json-writer.o.d
101780942     12 -rw-r--r--   1 macports admin        8679 Okt  7 06:48 ./git-2.38.1/json-writer.c
101780943      8 -rw-r--r--   1 macports admin        4292 Okt  7 06:48 ./git-2.38.1/json-writer.h
101785321     12 -rw-r--r--   1 macports admin        8696 Nov 11 20:39 ./git-2.38.1/json-writer.o

comment:11 Changed 17 months ago by ballapete (Peter "Pete" Dyballa)

Similarly on macOS Monterey, Version 12.6:

root 348 /\ find . -type f -name "json*" -ls
528951190       16 -rw-r--r--    1 macports         wheel                4292  7 Okt 06:48 ./git-2.38.1/json-writer.h
528955243       24 -rw-r--r--    1 macports         wheel               10856 11 Nov 20:52 ./git-2.38.1/json-writer.o
528955263        8 -rw-r--r--    1 macports         wheel                 969 11 Nov 20:52 ./git-2.38.1/.depend/json-writer.o.d
528951189       24 -rw-r--r--    1 macports         wheel                8679  7 Okt 06:48 ./git-2.38.1/json-writer.c

port build … + port test … produce them same result as port test … only. Here I can see:

/bin/sh ./generate-cmdlist.sh \
		 \
		command-list.txt >command-list.h
/usr/bin/clang -o hex.o -c -MF ./.depend/hex.o.d -MQ hex.o -MMD -MP    -Os -std=gnu99 -arch x86_64 -I. -DPRECOMPOSE_UNICODE -DPROTECT_HFS_DEFAULT=1 -DGIT_HOST_CPU="\"x86_64\"" -DUSE_LIBPCRE2 -I/opt/local/include -I/opt/local/include -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -I/opt/local/include -DUSE_ST_TIMESPEC -DSUPPORTS_SIMPLE_IPC -DSHA1_APPLE -DSHA256_BLK -DSHA1_MAX_BLOCK_SIZE="1024L*1024L*1024L"  -DHAVE_DEV_TTY -DHAVE_BSD_SYSCTL -DHAVE_GETDELIM -DHAVE_ARC4RANDOM -DHAVE_NS_GET_EXECUTABLE_PATH  -DAPPLE_COMMON_CRYPTO -DFREAD_READS_DIRECTORIES -DOPEN_RETURNS_EINTR -DCOMMON_DIGEST_FOR_OPENSSL -DNO_MEMMEM -Icompat/regex -DHAVE_FSMONITOR_DAEMON_BACKEND -DHAVE_FSMONITOR_OS_SETTINGS -DSHELL_PATH='"/bin/sh"'  hex.c
/usr/bin/clang -o hook.o -c -MF ./.depend/hook.o.d -MQ hook.o -MMD -MP    -Os -std=gnu99 -arch x86_64 -I. -DPRECOMPOSE_UNICODE -DPROTECT_HFS_DEFAULT=1 -DGIT_HOST_CPU="\"x86_64\"" -DUSE_LIBPCRE2 -I/opt/local/include -I/opt/local/include -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -I/opt/local/include -DUSE_ST_TIMESPEC -DSUPPORTS_SIMPLE_IPC -DSHA1_APPLE -DSHA256_BLK -DSHA1_MAX_BLOCK_SIZE="1024L*1024L*1024L"  -DHAVE_DEV_TTY -DHAVE_BSD_SYSCTL -DHAVE_GETDELIM -DHAVE_ARC4RANDOM -DHAVE_NS_GET_EXECUTABLE_PATH  -DAPPLE_COMMON_CRYPTO -DFREAD_READS_DIRECTORIES -DOPEN_RETURNS_EINTR -DCOMMON_DIGEST_FOR_OPENSSL -DNO_MEMMEM -Icompat/regex -DHAVE_FSMONITOR_DAEMON_BACKEND -DHAVE_FSMONITOR_OS_SETTINGS -DSHELL_PATH='"/bin/sh"'  hook.c
/usr/bin/clang -o ident.o -c -MF ./.depend/ident.o.d -MQ ident.o -MMD -MP    -Os -std=gnu99 -arch x86_64 -I. -DPRECOMPOSE_UNICODE -DPROTECT_HFS_DEFAULT=1 -DGIT_HOST_CPU="\"x86_64\"" -DUSE_LIBPCRE2 -I/opt/local/include -I/opt/local/include -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -I/opt/local/include -DUSE_ST_TIMESPEC -DSUPPORTS_SIMPLE_IPC -DSHA1_APPLE -DSHA256_BLK -DSHA1_MAX_BLOCK_SIZE="1024L*1024L*1024L"  -DHAVE_DEV_TTY -DHAVE_BSD_SYSCTL -DHAVE_GETDELIM -DHAVE_ARC4RANDOM -DHAVE_NS_GET_EXECUTABLE_PATH  -DAPPLE_COMMON_CRYPTO -DFREAD_READS_DIRECTORIES -DOPEN_RETURNS_EINTR -DCOMMON_DIGEST_FOR_OPENSSL -DNO_MEMMEM -Icompat/regex -DHAVE_FSMONITOR_DAEMON_BACKEND -DHAVE_FSMONITOR_OS_SETTINGS -DSHELL_PATH='"/bin/sh"'  ident.c
/usr/bin/clang -o json-writer.o -c -MF ./.depend/json-writer.o.d -MQ json-writer.o -MMD -MP    -Os -std=gnu99 -arch x86_64 -I. -DPRECOMPOSE_UNICODE -DPROTECT_HFS_DEFAULT=1 -DGIT_HOST_CPU="\"x86_64\"" -DUSE_LIBPCRE2 -I/opt/local/include -I/opt/local/include -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -I/opt/local/include -DUSE_ST_TIMESPEC -DSUPPORTS_SIMPLE_IPC -DSHA1_APPLE -DSHA256_BLK -DSHA1_MAX_BLOCK_SIZE="1024L*1024L*1024L"  -DHAVE_DEV_TTY -DHAVE_BSD_SYSCTL -DHAVE_GETDELIM -DHAVE_ARC4RANDOM -DHAVE_NS_GET_EXECUTABLE_PATH  -DAPPLE_COMMON_CRYPTO -DFREAD_READS_DIRECTORIES -DOPEN_RETURNS_EINTR -DCOMMON_DIGEST_FOR_OPENSSL -DNO_MEMMEM -Icompat/regex -DHAVE_FSMONITOR_DAEMON_BACKEND -DHAVE_FSMONITOR_OS_SETTINGS -DSHELL_PATH='"/bin/sh"'  json-writer.c

and later a different object:

/usr/bin/clang -o t/helper/test-json-writer.o -c -MF t/helper/.depend/test-json-writer.o.d -MQ t/helper/test-json-writer.o -MMD -MP    -Os -std=gnu99 -arch x86_64 -I. -DPRECOMPOSE_UNICODE -DPROTECT_HFS_DEFAULT=1 -DGIT_HOST_CPU="\"x86_64\"" -DUSE_LIBPCRE2 -I/opt/local/include -I/opt/local/include -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -I/opt/local/include -DUSE_ST_TIMESPEC -DSUPPORTS_SIMPLE_IPC -DSHA1_APPLE -DSHA256_BLK -DSHA1_MAX_BLOCK_SIZE="1024L*1024L*1024L"  -DHAVE_DEV_TTY -DHAVE_BSD_SYSCTL -DHAVE_GETDELIM -DHAVE_ARC4RANDOM -DHAVE_NS_GET_EXECUTABLE_PATH  -DAPPLE_COMMON_CRYPTO -DFREAD_READS_DIRECTORIES -DOPEN_RETURNS_EINTR -DCOMMON_DIGEST_FOR_OPENSSL -DNO_MEMMEM -Icompat/regex -DHAVE_FSMONITOR_DAEMON_BACKEND -DHAVE_FSMONITOR_OS_SETTINGS -DSHELL_PATH='"/bin/sh"'  t/helper/test-json-writer.c

Finally static library is built:

rm -f libgit.a && ar rcs libgit.a abspath.o add-interactive.o add-patch.o advice.o alias.o alloc.o apply.o archive-tar.o archive-zip.o archive.o attr.o base85.o bisect.o blame.o blob.o bloom.o branch.o bulk-checkin.o bundle-uri.o bundle.o cache-tree.o cbtree.o chdir-notify.o checkout.o chunk-format.o color.o column.o combine-diff.o commit-graph.o commit-reach.o commit.o compat/nonblock.o compat/obstack.o compat/terminal.o compat/zlib-uncompress2.o config.o connect.o connected.o convert.o copy.o credential.o csum-file.o ctype.o date.o decorate.o delta-islands.o diagnose.o diff-delta.o diff-merges.o diff-lib.o diff-no-index.o diff.o diffcore-break.o diffcore-delta.o diffcore-order.o diffcore-pickaxe.o diffcore-rename.o diffcore-rotate.o dir-iterator.o dir.o editor.o entry.o environment.o ewah/bitmap.o ewah/ewah_bitmap.o ewah/ewah_io.o ewah/ewah_rlw.o exec-cmd.o fetch-negotiator.o fetch-pack.o fmt-merge-msg.o fsck.o fsmonitor.o fsmonitor-ipc.o fsmonitor-settings.o gettext.o gpg-interface.o graph.o grep.o hash-lookup.o hashmap.o help.o hex.o hook.o ident.o json-writer.o kwset.o levenshtein.o line-log.o line-range.o linear-assignment.o list-objects-filter-options.o list-objects-filter.o list-objects.o ll-merge.o lockfile.o log-tree.o ls-refs.o mailinfo.o mailmap.o match-trees.o mem-pool.o merge-blobs.o merge-ort.o merge-ort-wrappers.o merge-recursive.o merge.o midx.o name-hash.o negotiator/default.o negotiator/noop.o negotiator/skipping.o notes-cache.o notes-merge.o notes-utils.o notes.o object-file.o object-name.o object.o oid-array.o oidmap.o oidset.o oidtree.o pack-bitmap-write.o pack-bitmap.o pack-check.o pack-mtimes.o pack-objects.o pack-revindex.o pack-write.o packfile.o pager.o parallel-checkout.o parse-options-cb.o parse-options.o patch-delta.o patch-ids.o path.o pathspec.o pkt-line.o preload-index.o pretty.o prio-queue.o progress.o promisor-remote.o prompt.o protocol.o protocol-caps.o prune-packed.o quote.o range-diff.o reachable.o read-cache.o rebase-interactive.o rebase.o ref-filter.o reflog-walk.o reflog.o refs.o refs/debug.o refs/files-backend.o refs/iterator.o refs/packed-backend.o refs/ref-cache.o refspec.o remote.o replace-object.o repo-settings.o repository.o rerere.o reset.o resolve-undo.o revision.o run-command.o send-pack.o sequencer.o serve.o server-info.o setup.o shallow.o sideband.o sigchain.o sparse-index.o split-index.o stable-qsort.o strbuf.o streaming.o string-list.o strmap.o strvec.o sub-process.o submodule-config.o submodule.o symlinks.o tag.o tempfile.o thread-utils.o tmp-objdir.o trace.o trace2.o trace2/tr2_cfg.o trace2/tr2_cmd_name.o trace2/tr2_dst.o trace2/tr2_sid.o trace2/tr2_sysenv.o trace2/tr2_tbuf.o trace2/tr2_tgt_event.o trace2/tr2_tgt_normal.o trace2/tr2_tgt_perf.o trace2/tr2_tls.o trailer.o transport-helper.o transport.o tree-diff.o tree-walk.o tree.o unpack-trees.o upload-pack.o url.o urlmatch.o usage.o userdiff.o utf8.o varint.o version.o versioncmp.o walker.o wildmatch.o worktree.o wrapper.o write-or-die.o ws.o wt-status.o xdiff-interface.o zlib.o unix-socket.o unix-stream-server.o compat/simple-ipc/ipc-shared.o compat/simple-ipc/ipc-unix-socket.o sha256/block/sha256.o compat/sha1-chunked.o compat/precompose_utf8.o compat/fopen.o compat/open.o compat/memmem.o compat/qsort_s.o compat/regex/regex.o compat/stub/procinfo.o compat/fsmonitor/fsm-listen-darwin.o compat/fsmonitor/fsm-health-darwin.o compat/fsmonitor/fsm-settings-darwin.o

and a test programme is also built:

/usr/bin/clang   -Os -std=gnu99 -arch x86_64 -I. -DPRECOMPOSE_UNICODE -DPROTECT_HFS_DEFAULT=1 -DGIT_HOST_CPU="\"x86_64\"" -DUSE_LIBPCRE2 -I/opt/local/include -I/opt/local/include -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -I/opt/local/include -DUSE_ST_TIMESPEC -DSUPPORTS_SIMPLE_IPC -DSHA1_APPLE -DSHA256_BLK -DSHA1_MAX_BLOCK_SIZE="1024L*1024L*1024L"  -DHAVE_DEV_TTY -DHAVE_BSD_SYSCTL -DHAVE_GETDELIM -DHAVE_ARC4RANDOM -DHAVE_NS_GET_EXECUTABLE_PATH  -DAPPLE_COMMON_CRYPTO -DFREAD_READS_DIRECTORIES -DOPEN_RETURNS_EINTR -DCOMMON_DIGEST_FOR_OPENSSL -DNO_MEMMEM -Icompat/regex -DHAVE_FSMONITOR_DAEMON_BACKEND -DHAVE_FSMONITOR_OS_SETTINGS -DSHELL_PATH='"/bin/sh"' -o t/helper/test-tool -L/opt/local/lib -Wl,-headerpad_max_install_names -arch x86_64  -framework CoreServices t/helper/test-tool.o common-main.o t/helper/test-advise.o t/helper/test-bitmap.o t/helper/test-bloom.o t/helper/test-chmtime.o t/helper/test-config.o t/helper/test-crontab.o t/helper/test-csprng.o t/helper/test-ctype.o t/helper/test-date.o t/helper/test-delta.o t/helper/test-dir-iterator.o t/helper/test-drop-caches.o t/helper/test-dump-cache-tree.o t/helper/test-dump-fsmonitor.o t/helper/test-dump-split-index.o t/helper/test-dump-untracked-cache.o t/helper/test-example-decorate.o t/helper/test-fast-rebase.o t/helper/test-fsmonitor-client.o t/helper/test-genrandom.o t/helper/test-genzeros.o t/helper/test-getcwd.o t/helper/test-hash-speed.o t/helper/test-hash.o t/helper/test-hashmap.o t/helper/test-hexdump.o t/helper/test-index-version.o t/helper/test-json-writer.o t/helper/test-lazy-init-name-hash.o t/helper/test-match-trees.o t/helper/test-mergesort.o t/helper/test-mktemp.o t/helper/test-oid-array.o t/helper/test-oidmap.o t/helper/test-oidtree.o t/helper/test-online-cpus.o t/helper/test-pack-mtimes.o t/helper/test-parse-options.o t/helper/test-parse-pathspec-file.o t/helper/test-partial-clone.o t/helper/test-path-utils.o t/helper/test-pcre2-config.o t/helper/test-pkt-line.o t/helper/test-prio-queue.o t/helper/test-proc-receive.o t/helper/test-progress.o t/helper/test-reach.o t/helper/test-read-cache.o t/helper/test-read-graph.o t/helper/test-read-midx.o t/helper/test-ref-store.o t/helper/test-reftable.o t/helper/test-regex.o t/helper/test-rot13-filter.o t/helper/test-repository.o t/helper/test-revision-walking.o t/helper/test-run-command.o t/helper/test-scrap-cache-tree.o t/helper/test-serve-v2.o t/helper/test-sha1.o t/helper/test-sha256.o t/helper/test-sigchain.o t/helper/test-simple-ipc.o t/helper/test-strcmp-offset.o t/helper/test-string-list.o t/helper/test-submodule-config.o t/helper/test-submodule-nested-repo-config.o t/helper/test-submodule.o t/helper/test-subprocess.o t/helper/test-trace2.o t/helper/test-urlmatch-normalization.o t/helper/test-userdiff.o t/helper/test-wildmatch.o t/helper/test-windows-named-pipe.o t/helper/test-write-cache.o t/helper/test-xml-encode.o libgit.a xdiff/lib.a reftable/libreftable.a reftable/libreftable_test.a libgit.a xdiff/lib.a reftable/libreftable.a libgit.a  -lpcre2-8 -L/opt/local/lib -Wl,-rpath,/opt/local/lib -lz -L/opt/local/lib -Wl,-rpath,/opt/local/lib -liconv -lintl

A few tests succeed, most fail… On intel macOS Monterey and on PPC Leopard.

comment:12 Changed 17 months ago by ballapete (Peter "Pete" Dyballa)

On Monterey I let the tests run with make -k: 259 failed, 25747 succeeded…

comment:13 Changed 17 months ago by ballapete (Peter "Pete" Dyballa)

git @2.38.0 also builds with GCC 4.2 when the UNUSED macro in git-compat-util.h is corrected via the supplied patch. The built git binary fails exactly like when built from original source with GCC 7 when testing.

comment:14 Changed 17 months ago by ballapete (Peter "Pete" Dyballa)

On PPC Leopard the number of passed tests is 25803 vs. 248 that failed. Strange, that this looks better…

comment:16 Changed 16 months ago by kencu (Ken)

Owner: set to kencu
Resolution: fixed
Status: newclosed

In f9197a41f8dc7189897710c0c7fd1521cd299357/macports-ports (master):

git: fix build with older gcc versions

uses upstream patch
closes: #65933

Note: See TracTickets for help on using tickets.