[PATCH] [lnt] Update Clang Stage 1: configure, RA, using system compiler to use CMAKE

Marc Schifer via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 3 18:23:54 PST 2016


Chris,
  All edits made and tested (see in line comments ).  New patch attached.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: clang_stage1_confiure_ra.patch
Type: application/octet-stream
Size: 18898 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160203/efecee42/attachment.obj>
-------------- next part --------------


> On Feb 3, 2016, at 3:55 PM, Chris Matthews <chris.matthews at apple.com> wrote:
> 
> +BUILD_RECORD_TEMPLATE = '/clang.roots/BuildRecords/{}-9999.99_install’
> 
> I the install dir should be flat, maybe just /clang.build/
> 
> 
> 
> +                  'clang-703': 3.5,
> +                  'clang-702': 3.5,
> +                  "clang-700": 4.7,
> +                  'clang-600': 4.7}
> 
> Those are Apple’s clangs, the branch names should match the open source releases.
> 
> 
> 
> 
> These should be removed if they are comments:
> 
> +    #check_hanging_processes()
>     check_repo_state(conf.workspace)
> -    configure_cmd = [conf.srcdir() + "/configure"]
> +    #check_cmake()
> +    #check_host_clang()
> +    #check_int_zorg_updated()
> 
> 
> 
> 
> 
> assert False, "Invalid parameter for apple-clang.”
> 
> Should be “clang-builder”?
> 
> 
> 
> 
> '-DLLVM_ENABLE_PIC=On', # rdar://problem/24142671
> 
> Maybe mention the jist of this radar for the Non Apple people.
> 
> 
> 
> 
> More comments:
> 
> +            #'-DCMAKE_C_FLAGS_RELWITHDEBINFO=-O2 -gline-tables-only -DNDEBUG',
> +            #"-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=-O2 -gline-tables-only -DNDEBUG',
> 
> 
> +            #if conf.assertions:
> +            #    cmake_command.append('-DLLVM_ENABLE_ASSERTIONS=On')
> +
> 
> 
> 
> 
> 
> This does not work, correct? Maybe remove it for now.
> 
> # Two stage build, via the make files.
> +            run_cmd(clang_br, ['mkdir',
> +                           './Objects',
> +                           './Symbols',
> +                           './Root',
> +                           './Caches'])
> +
> +            developer_dir = '/Applications/Xcode.app/Contents/Developer'
> +            supported_arches = 'armv6 armv7 armv7s arm64 i386 x86_64 x86_64h'
> +            # Add various settings that would normally come from XBS.
> +            enviroment = {'DEVELOPER_DIR': developer_dir,
> +                          'DT_TOOLCHAIN_DIR': toolchain,
> +                          'TOOLCHAIN_INSTALL_DIR': toolchain,
> +                          'MACOSX_DEPLOYMENT_TARGET': '10.10',
> +                          'TOOLCHAINS': 'default',
> +                          'SDKROOT': sdkroot,
> +                          'RC_SUPPORTED_ARCHS': supported_arches,
> +                          'SRCROOT': '{}/clang'.format(conf.workspace),
> +                          'OBJROOT': '{}/Objects'.format(clang_br),
> +                          'SYMROOT': '{}/Symbols'.format(clang_br),
> +                          'DSTROOT': '{}/Root'.format(clang_br),
> +                          'CCHROOT': '{}/Caches'.format(clang_br),
> +                          'RC_ProjectName': project,
> +                          'RC_ProjectSourceVersion':'9999.99.9',
> +                          'RC_ProjectNameAndSourceVersion': '{}-9999.99.9'.format(project),
> +                          'RC_ProjectBuildVersion': 1,
> +                          'RC_ReleaseStatus': 'Development',
> +                          'LLVM_INCLUDE_TESTS': 'yes',
> +                          'LLVM_REPOSITORY:': conf._svn_url,
> +                          }
> +            make_command = ['make', '-C', 'clang']
> +
> +            enviroment['RC_ARCHS'] = 'x86_64'
> +            enviroment['RC_x86_64'] = 'YES'
> +            enviroment['RC_XBS'] = 'YES'
> +            enviroment['RC_BUILDIT'] = 'YES'
> +
> +            # Add build system overrides we use to:
> +            #   1. Build all of the tools (so we can run tests later).
> +            #   2. Generate Order files
> +            #   3. Build with LTO
> +            #   4. bootstrap
> +            #   5. Supply version information to get baked into Clang.
> +            make_command.append('Clang_Build_All=1')
> +            make_command.append('Clang_Build_No_Tools=NO')
> +
> +            if not conf.lto:
> +                make_command.append('Clang_Enable_LTO=0')
> +
> +            if not conf.orderfile:
> +                make_command.append('Clang_Autogenerate_Order_File=0')
> +            else:
> +                make_command.append('Clang_Autogenerate_Order_File=1')
> +
> +            if conf.nobootstrap:
> +                make_command.append('Clang_Enable_Bootstrap=0')
> +
> +            if conf.debug:
> +                make_command.append('Clang_Use_Optimized=0')
> +
> +            if conf.assertions:
> +                make_command.append('Clang_Use_Assertions=1')
> +            else:
> +                make_command.append('Clang_Use_Assertions=0')
> +
> +
> +            repo_str = 'megaclang/{}'.format(conf.branch())
> +            enviroment['CLANG_REPOSITORY_STRING'] = repo_str
> +            enviroment['SVN_REVISION'] = conf.svn_rev
> +            if conf.device:
> +                make_command.append('install-cross')
> +                dest_dir = '.'
> +            else:
> +                make_command.append('install')
> +                dest_dir = toolchain
> +
> +            run_ws(make_command, enviroment)
> +
> +            build_upload_artifact()
> +
> 
> 
> 
> 
> 
> 
> 
> Some of the clangs on green dragon are not this new:
> 
> CLANG_VERSION_OUTPUT = """Apple LLVM version 7.0.0 (clang-700.0.59.1)
> 
> Many are clang-602.0.53
> 
> 
> 
> 
> 
> 
> Should be zorg not int_zorg:
> 
>   "stat -f \"%m\" /opt/llvm/int_zorg/.git/FETCH_HEAD": "1426029951"}
> +
> Although, I’m not sure you even exercise this test output anymore.
> 
> 
> 
> Does this do anything? It should be removed (unless you are planning something??? :) )
> 
> +    parser.add_argument('--sanitize', dest='sanitize',
> +                        action='store_true')
> 
> 
> 
>> On Feb 3, 2016, at 11:50 AM, Marc Schifer <mschifer at apple.com> wrote:
>> 
>> Chris,
>> 
>> This is the patch to update the stage 1 bot to use CMAKE instead of the now deprecated  auto tools it previously used.
>> this patch addresses only the stage 1 part of the build at the moment. The fix for stage 2 will follow shortly.
>> This patch includes changes to build.py for the actual bot changes and test_build.py to update the LIT tests to match.
>> This should be a drop in replacement for the current version with no changes required to the Jenkins job.
>> 
>> <clang_stage1_confiure_ra.patch>
>> Marc S.
>> 
>> 
> 



More information about the llvm-commits mailing list