#18755 closed defect (fixed)
PPC problem on gmp 4.2.4_2 — at Version 9
Reported by: | garribald@… | Owned by: | mcalhoun@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 1.7.0 |
Keywords: | ppc | Cc: | |
Port: | gmp |
Description (last modified by ryandesign (Ryan Carsten Schmidt))
I am not sure how much this error is related to #9053 or simply the recurrence of #11800 so if this ticket is a dupe, i am sorry. Anyway, the revision 2 of gmp 4.2.4 stops with following error:
$ sudo port -vd upgrade gmp Password: DEBUG: Found port in file:///opt/local/var/macports/sources/rsync.macports.org/release/ports/devel/gmp DEBUG: epoch: in tree: 0 installed: 0 DEBUG: gmp 4.2.4_2 exists in the ports tree DEBUG: gmp 4.2.4_1 is installed DEBUG: variants to install {} ppc DEBUG: available variants are : universal DEBUG: new portvariants: DEBUG: Changing to port directory: /opt/local/var/macports/sources/rsync.macports.org/release/ports/devel/gmp DEBUG: setting option os.universal_supported to yes DEBUG: org.macports.load registered provides 'load', a pre-existing procedure. Target override will not be provided DEBUG: org.macports.distfiles registered provides 'distfiles', a pre-existing procedure. Target override will not be provided DEBUG: Using group file /opt/local/var/macports/sources/rsync.macports.org/release/ports/_resources/port1.0/group/muniversal-1.0.tcl DEBUG: universal variant already exists, so not adding the default one DEBUG: Requested variant powerpc is not provided by port gmp. DEBUG: Requested variant darwin is not provided by port gmp. DEBUG: Requested variant macosx is not provided by port gmp. DEBUG: Executing org.macports.main (gmp) DEBUG: Skipping completed org.macports.fetch (gmp) DEBUG: Skipping completed org.macports.checksum (gmp) DEBUG: setting option extract.cmd to /opt/local/bin/bzip2 DEBUG: Skipping completed org.macports.extract (gmp) DEBUG: Skipping completed org.macports.patch (gmp) DEBUG: Skipping completed org.macports.configure (gmp) ---> Building gmp DEBUG: Executing org.macports.build (gmp) DEBUG: port allows a parallel build DEBUG: Environment: MACOSX_DEPLOYMENT_TARGET='10.4' DEBUG: Assembled command: 'cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_gmp/work/gmp-4.2.4" && nice -n 18 make all' make all-recursive Making all in tests Making all in . make[3]: Nothing to be done for `all-am'. Making all in devel make[3]: Nothing to be done for `all'. Making all in mpn make[3]: Nothing to be done for `all'. Making all in mpz make[3]: Nothing to be done for `all'. Making all in mpq make[3]: Nothing to be done for `all'. Making all in mpf make[3]: Nothing to be done for `all'. Making all in rand make[3]: Nothing to be done for `all'. Making all in misc make[3]: Nothing to be done for `all'. Making all in cxx make[3]: Nothing to be done for `all'. Making all in mpbsd make[3]: Nothing to be done for `all'. Making all in mpn /bin/sh ../libtool --mode=compile --tag=CC ../mpn/m4-ccas --m4="m4" ccache /usr/bin/gcc-4.0 -c -DHAVE_CONFIG_H -I. -I. -I.. -D__GMP_WITHIN_GMP -I.. -DOPERATION_`echo popcount | sed 's/_$//'` -I/opt/local/include -pipe `test -f 'popcount.asm' || echo './'`popcount.asm ../mpn/m4-ccas --m4=m4 ccache /usr/bin/gcc-4.0 -c -DHAVE_CONFIG_H -I. -I. -I.. -D__GMP_WITHIN_GMP -I.. -DOPERATION_popcount -I/opt/local/include -pipe popcount.asm -fno-common -DPIC -o .libs/popcount.o m4 -DHAVE_CONFIG_H -D__GMP_WITHIN_GMP -DOPERATION_popcount -DPIC popcount.asm >tmp-popcount.s ccache /usr/bin/gcc-4.0 -c -DHAVE_CONFIG_H -I. -I. -I.. -D__GMP_WITHIN_GMP -I.. -DOPERATION_popcount -I/opt/local/include -pipe tmp-popcount.s -fno-common -DPIC -o .libs/popcount.o tmp-popcount.s:127:vspltisb vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:128:vspltisb vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:129:vspltisb vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:130:lvx vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:131:lvx vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:132:vspltisb vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:137:lvx vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:140:lvx vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:141:vand vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:147:vxor vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:150:vxor vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:172:lvx vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:174:lvx vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:176:vsr vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:177:vsr vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:179:vand vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:180:vand vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:181:vsububm vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:182:vsububm vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:183:vsr vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:184:vsr vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:185:vand vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:186:vand vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:187:vand vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:188:vand vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:189:vaddubm vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:190:vaddubm vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:191:vaddubm vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:192:vsr vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:193:vand vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:194:vand vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:195:vaddubm vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:196:vsum4ubs vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:202:lvx vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:203:vxor vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:207:vor vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:208:lvx vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:213:lvx vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:214:vand vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:216:vsr vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:217:vsr vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:218:vand vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:219:vand vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:220:vsububm vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:221:vsububm vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:222:vsr vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:223:vsr vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:224:vand vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:225:vand vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:226:vand vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:227:vand vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:228:vaddubm vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:229:vaddubm vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:230:vaddubm vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:231:vsr vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:232:vand vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:233:vand vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:234:vaddubm vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:235:vsum4ubs vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:239:stvx vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) make[2]: *** [popcount.lo] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_gmp/work/gmp-4.2.4" && nice -n 18 make all " returned error 2 Command output: tmp-popcount.s:202:lvx vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:203:vxor vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:207:vor vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:208:lvx vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:213:lvx vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:214:vand vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:216:vsr vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:217:vsr vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:218:vand vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:219:vand vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:220:vsububm vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:221:vsububm vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:222:vsr vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:223:vsr vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:224:vand vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:225:vand vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:226:vand vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:227:vand vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:228:vaddubm vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:229:vaddubm vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:230:vaddubm vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:231:vsr vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:232:vand vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:233:vand vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:234:vaddubm vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:235:vsum4ubs vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) tmp-popcount.s:239:stvx vector instruction is optional for the PowerPC (not allowed without -force_cpusubtype_ALL option) make[2]: *** [popcount.lo] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 Warning: the following items did not execute (for gmp): org.macports.destroot org.macports.build DEBUG: invalid command name "::ui_init" while executing "::ui_init $priority $prefix $channels $message" ("uplevel" body line 2) invoked from within "uplevel 1 $body" Error: Unable to upgrade port: 1
The log is from a re-run of install with -vd flag - should show the problem. But i can do a full run as well, if needed. Haven't tried it again without ccache, I don't think it has anything to do with the problem.
MacPorts 1.7.0, OS X 10.4.11, PPC
Change History (11)
comment:1 follow-up: 4 Changed 16 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Owner: | changed from macports-tickets@… to mcalhoun@… |
---|---|
Status: | new → assigned |
comment:2 follow-up: 3 Changed 16 years ago by vinc17@…
As documented, I'd say that -force_cpusubtype_ALL fixes the symptom, not the bug. Indeed here the problem concerns the asm file, and the as(1) man page says:
-force_cpusubtype_ALL By default, the assembler will produce the CPU subtype ALL for the object file it is assembling if it finds no implementation- specific instructions. Also by default, the assembler will allow implementation-specific instructions and will combine the CPU subtype for those specific implementations. The combining of specific implementations is architecture-dependent; if some combination of instructions is not allowed, an error is gener- ated. With the optional -force_cpusubtype_ALL flag, all instructions are allowed and the object file's CPU subtype will be the ALL subtype. If the target architecture specified is a machine-specific implementation (e.g., -arch ppc603, -arch i486), the assembler will flag as errors instructions that are not supported on that architecture, and it will produce an object file with the CPU subtype for that specific implementa- tion (even if no implementation-specific instructions are used). The -force_cpusubtype_ALL flag is the default for all x86 and x86_64 architectures.
So, basically -force_cpusubtype_ALL tells the assembler not to report any error if a non-generic instruction (optional instruction, extension...) is used. This means that the programmer needs to make sure that such instructions are (dynamically) executed only when they exist. By adding -force_cpusubtype_ALL, you hide a potential error made by upstream.
comment:3 Changed 16 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Replying to vinc17@…:
So, basically -force_cpusubtype_ALL tells the assembler not to report any error if a non-generic instruction (optional instruction, extension...) is used. This means that the programmer needs to make sure that such instructions are (dynamically) executed only when they exist. By adding -force_cpusubtype_ALL, you hide a potential error made by upstream.
I take your point, but GMP claims that its test suite is quite comprehensive, so this would be a mechanism to find errors made upstream.
As far as I know, nobody has found any.
I do not claim to be an expert on the PowerPC architecture, but -force_cpusubtype_ALL can't be that bad if it is the default for x86 and x86_64.
In any event, this ticket concerns more the fact that -force_cpusubtype_ALL is not being set correctly.
Changed 16 years ago by garribald@…
Attachment: | gmp_log.txt added |
---|
comment:4 Changed 16 years ago by garribald@…
Replying to mcalhoun@…:
Could you please post the results of
sudo port clean gmp && sudo port -vd upgrade gmpso the configure phase is included in the output.
Sorry for the delay, finally came around to make that full re-run - I have attached the log (gmp_log.txt). If there is anything else (running without ccache or whatever else log you need), no problem :)
comment:5 Changed 16 years ago by garribald@…
It works now!
Having noticed the changeset here
http://trac.macports.org/changeset/47853
I have applied the small change manually to the portfile (didn't want to wait for the next portindex-run of the site ;) ) and gmp ran through all the phases fine. Thanks :)
PS: The configure.log also confirmed the success, changing the now unset (-pipe free) C/CXXFLAGS to
'-O2 -mpowerpc -no-cpp-precomp -force_cpusubtype_ALL -Wa,-maltivec -mcpu=7400'
for this old (but quite nice) Powerbook.
comment:6 Changed 16 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Glad it is working.
Thanks for the report and testing.
Changed 15 years ago by yaseppochi (Stephen J. Turnbull)
comment:8 Changed 15 years ago by yaseppochi (Stephen J. Turnbull)
It's back!
gmp 4.3.1_1. powerpc-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5370). MacPorts from svn; tree is up to date to r56622. Mac OS X 10.4.11, iBook G4 (PPC).
Log attached (gmp.log).
comment:9 Changed 15 years ago by ryandesign (Ryan Carsten Schmidt)
Description: | modified (diff) |
---|
In your output, I do not see the configure phase.
The configure phase is where -force_cpusubtype_ALL should be set.
The fact that it is not seems to be the problem.
Could you please post the results of
so the configure phase is included in the output.