Skip to content

cd Mac && make installmacsubtree fails on Mac OS X < 10.5 because of r63955 #47643

Closed

Description

@trentm
mannequin
BPO 3393
Nosy @ronaldoussoren

Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

Show more details

GitHub fields:

assignee = None
closed_at = <Date 2008-07-18.05:45:38.664>
created_at = <Date 2008-07-17.17:02:47.336>
labels = ['build']
title = '`cd Mac && make installmacsubtree` fails on Mac OS X < 10.5 because of r63955'
updated_at = <Date 2008-07-18.06:25:08.035>
user = 'https://bugs.python.org/trentm'

bugs.python.org fields:

activity = <Date 2008-07-18.06:25:08.035>
actor = 'trentm'
assignee = 'none'
closed = True
closed_date = <Date 2008-07-18.05:45:38.664>
closer = 'ronaldoussoren'
components = ['Build']
creation = <Date 2008-07-17.17:02:47.336>
creator = 'trentm'
dependencies = []
files = []
hgrepos = []
issue_num = 3393
keywords = []
message_count = 7.0
messages = ['69890', '69891', '69892', '69934', '69938', '69939', '69940']
nosy_count = 2.0
nosy_names = ['ronaldoussoren', 'trentm']
pr_nums = []
priority = 'normal'
resolution = 'duplicate'
stage = None
status = 'closed'
superseder = None
type = 'compile error'
url = 'https://bugs.python.org/issue3393'
versions = ['Python 2.6']

Activity

  1. trentm commented on Jul 17, 2008

    trentmmannequin
    MannequinAuthor

    http://svn.python.org/view?rev=63955&view=rev
    "MacOS X: Enable 4-way universal builds ..."

    This revision made the following change to Mac/Makefile.in:
    http://svn.python.org/view/python/trunk/Mac/Makefile.in?rev=63955&view=diff&r1=63955&r2=63954&p1=python/trunk/Mac/Makefile.in&p2=/python/trunk/Mac/Makefile.in

    The last hunk (part of the "installmacsubtree" target) and a bit of the
    preceding hunk uses arch with arguments:
    ---------------------------------

     install_BuildApplet:
    -	$(RUNSHARED) $(BUILDPYTHON) $(srcdir)/scripts/BuildApplet.py \
    +	$(RUNSHARED) arch -ppc -i386 $(BUILDPYTHON)
    $(srcdir)/scripts/BuildApplet.py \
     		--destroot "$(DESTDIR)" \
    -		--python $(INSTALLED_PYTHONAPP) \
    +	
    --python=$(prefix)/Resources/Python.app/Contents/MacOS/$(PYTHONFRAMEWORK)`test
    -f
    "$(DESTDIR)$(prefix)/Resources/Python.app/Contents/MacOS/$(PYTHONFRAMEWORK)-32"
    && echo "-32"`  \
     		--output "$(DESTDIR)$(PYTHONAPPSDIR)/Build Applet.app" \
     		$(srcdir)/scripts/BuildApplet.py
     
    @@ -225,7 +279,7 @@
     	done
     
     
    -	$(RUNSHARED) $(BUILDPYTHON) $(CACHERSRC) -v $(DESTDIR)$(MACLIBDEST)
    $(DESTDIR)$(MACTOOLSDEST)
    +	$(RUNSHARED) arch -ppc -i386 $(BUILDPYTHON) $(CACHERSRC) -v
    $(DESTDIR)$(MACLIBDEST) $(DESTDIR)$(MACTOOLSDEST)
     	$(RUNSHARED) $(BUILDPYTHON) -Wi -tt $(compileall) -d $(MACTOOLSDEST)
    -x badsyntax $(DESTDIR)$(MACTOOLSDEST)
     	$(RUNSHARED) $(BUILDPYTHON) -O -Wi -tt $(compileall) -d
    $(MACTOOLSDEST) -x badsyntax $(DESTDIR)$(MACTOOLSDEST)

    That form of calling arch is only supported on Mac OS X 10.5
    (Leopard), I believe.

    ----------------------------------

    $ sw_vers
    ProductName:    Mac OS X
    ProductVersion: 10.4.11
    BuildVersion:   8S2167
    $ man arch | cat

    ARCH(1) BSD General Commands Manual
    ARCH(1)

    NAME
    arch -- print architecture type

    SYNOPSIS
    arch

    DESCRIPTION
    The arch command displays the machine's architecture type.

    SEE ALSO
    machine(1)

    Mac OS August 20, 1997
    Mac OS
    ----------------------------------

    Here is the current man page for arch (I had to look to try to see what
    Ronald was trying to do with the Makefile change) :)
    http://developer.apple.com/documentation/Darwin/Reference/ManPages/man1/arch.1.html

    I don't fully understand why the "arch -ppc -i386" is necessary for
    "$(BUILDPYTHON)".

    I'm not sure what the easiest solution to this would be... or if
    supporting "make frameworkinstallframework" (which eventually calls this
    target) on Mac OS X <10.5 is considered important enough.

    Perhaps a new
    RUNARCH=@RunArch@
    could be added to Mac/Makefile.in with the associated configure support
    to have that be blank unless --with-universal-archs=all was specified?

  2. added
    buildThe build process and cross-build
    on Jul 17, 2008
  3. trentm commented on Jul 17, 2008

    trentmmannequin
    MannequinAuthor

    Similar change in Mac/IDLE/Makefile.in:

    -----------------------------

    --- python/trunk/Mac/IDLE/Makefile.in	(original)
    +++ python/trunk/Mac/IDLE/Makefile.in	Thu Jun  5 14:58:24 2008
    @@ -42,7 +42,7 @@
     		$(srcdir)/../Icons/PythonSource.icns \
     		$(srcdir)/../Icons/PythonCompiled.icns Info.plist
     	rm -fr IDLE.app
    -	$(RUNSHARED) $(BUILDPYTHON) $(BUNDLEBULDER) \
    +	$(RUNSHARED) arch -ppc -i386 $(BUILDPYTHON) $(BUNDLEBULDER) \
     		--builddir=. \
     		--name=IDLE \
     		--link-exec \

  4. trentm commented on Jul 17, 2008

    trentmmannequin
    MannequinAuthor

    Alternative potential solution: use the ARCHPREFERENCE environment
    variable as described in the Mac OS X 10.5 arch man page. Ronald, if you
    could test if that works for you on 10.5, then presumably setting that
    environment var would be safely ignored on Mac OS X <10.5. Thoughts?

  5. ronaldoussoren commented on Jul 18, 2008

    @ronaldoussoren
    Contributor

    This patch is wrong, it drops the call to 'arch' entirely even when the
    call is needed.

    The suggestion for "ARCHPREFERENCE" won't work though, "arch" doesn't take
    arguments at all on 10.4.

    BTW. This is a duplicate of bpo-3381, which includes a patch for fixing
    the issue.

  6. ronaldoussoren commented on Jul 18, 2008

    @ronaldoussoren
    Contributor

    The current trunk should be correct, there are no explicit calls to the
    arch command left, all go through the configure replacement magic.

    To test if everything is correct now someone should test the following
    scenarios:

    • Build --enable-framework --enable-universalsdk on 10.4

    • Build --enable-framework --enable-universalsdk on 10.5

    • Build --enable-framework --enable-universalsdk --with-universal-
      archs=all on 10.5

    I cannot test the first one, and will test the last one (which is the
    one I'm most interested in).

  7. ronaldoussoren commented on Jul 18, 2008

    @ronaldoussoren
    Contributor

    BTW. There is a "--with-framework-name" argument to configure that makes
    it possible to have several indepenend framework installations

  8. trentm commented on Jul 18, 2008

    trentmmannequin
    MannequinAuthor

    The current trunk should be correct, there are no explicit calls to the
    arch command left, all go through the configure replacement magic.

    --------------------

    $ svn info
    Path: .
    URL: svn+ssh://pythondev@svn.python.org/python/trunk/Mac
    Repository Root: svn+ssh://pythondev@svn.python.org
    Repository UUID: 6015fed2-1504-0410-9fe1-9d1591cc4771
    Revision: 65091
    Node Kind: directory
    Schedule: normal
    Last Changed Author: ronald.oussoren
    Last Changed Rev: 65091
    Last Changed Date: 2008-07-17 22:48:03 -0700 (Thu, 17 Jul 2008)
    Properties Last Updated: 2008-07-17 22:55:32 -0700 (Thu, 17 Jul 2008)

    [trentm@mower:/src/python/Mac]
    $ svn up Makefile.in
    At revision 65091.
    [trentm@mower:
    /src/python/Mac]
    $ grep "arch -" Makefile.in
    $(RUNSHARED) arch -ppc -i386 $(BUILDPYTHON)
    $(srcdir)/scripts/BuildApplet.py \
    $(RUNSHARED) arch -ppc -i386 $(BUILDPYTHON) $(CACHERSRC) -v
    $(DESTDIR)$(MACLIBDEST) $(DESTDIR)$(MACTOOLSDEST)
    --------------------

    Apologies if I am missing something. Your patches for bpo-3381 did
    not include a change to Mac/Makefile.in.

    Trent

  9. transferred this issue fromon Apr 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    buildThe build process and cross-build

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions