It is a bit of a mess.... On the plus side, it no longer rebuilds its own gcc for each build. Unfortunately, the source rpm requires a few software collections for i686 (no upstream builds of these) and x86_64. I've mostly depsolved my way through, but I'm fighting building a new rust collection (SCL.org has 1.20, but firefox requires at least 1.24). The i686 build of rust is odd..... I'm optimistic I'll get x86_64 rust built today. The i686 rust may require something a bit more fancy to get off the ground.... It needs to bundle llvm as that isn't in the release, but the my latest attempt for i686 spit out: ############### error: process didn't exit successfully: `/builddir/build/BUILD/rustc-1.27.0-src/build/bootstrap/debug/rustc -vV` (exit code: 101) --- stdout rustc 1.27.0 binary: rustc commit-hash: unknown commit-date: unknown host: i686-unknown-linux-gnu release: 1.27.0 --- stderr error: couldn't load codegen backend "/builddir/build/BUILD/rustc-1.27.0-src/build/i686-unknown-linux-gnu/stage1/lib/rustlib/i686-unknown-linux-gnu/codegen-backends/librustc_trans-llvm.so": "/builddir/build/BUILD/rustc-1.27.0-src/build/i686-unknown-linux-gnu/stage1/lib/rustlib/i686-unknown-linux-gnu/codegen-backends/librustc_trans-llvm.so: undefined symbol: LLVMGetNextGlobal" command did not execute successfully: "/opt/rh/rust-toolset-7/root/usr/bin/cargo" "build" "--target" "i686-unknown-linux-gnu" "-j" "8" "--release" "--frozen" "--features" "panic-unwind backtrace" "--manifest-path" "/builddir/build/BUILD/rustc-1.27.0-src/src/libstd/Cargo.toml" "--message-format" "json" expected success, got: exit code: 101 thread 'main' panicked at 'cargo must succeed', bootstrap/compile.rs:1091:9 note: Run with `RUST_BACKTRACE=1` for a backtrace. failed to run: /builddir/build/BUILD/rustc-1.27.0-src/build/bootstrap/debug/bootstrap build Build completed unsuccessfully in 1:54:27 error: Bad exit status from /var/tmp/rpm-tmp.T8AHtW (%build) RPM build errors: Bad exit status from /var/tmp/rpm-tmp.T8AHtW (%build) [mockbuild@sl7 SPECS]$ file /builddir/build/BUILD/rustc-1.27.0-src/build/i686-unknown-linux-gnu/stage1/lib/rustlib/i686-unknown-linux-gnu/codegen-backends/librustc_trans-llvm.so /builddir/build/BUILD/rustc-1.27.0-src/build/i686-unknown-linux-gnu/stage1/lib/rustlib/i686-unknown-linux-gnu/codegen-backends/librustc_trans-llvm.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=c67b3d34b93cc42f2874eb574348da6395147035, not stripped [mockbuild@sl7 SPECS]$ ldd /builddir/build/BUILD/rustc-1.27.0-src/build/i686-unknown-linux-gnu/stage1/lib/rustlib/i686-unknown-linux-gnu/codegen-backends/librustc_trans-llvm.so linux-gate.so.1 => (0x00882000) librustc_trans_utils-30e9d0c253f30f1d.so => not found librustc_platform_intrinsics-b75d30e2bdf573ed.so => not found librustc_incremental-b894116bb98a052c.so => not found librustc_allocator-fffeb8de1dc0c3e5.so => not found librustc_mir-edefc79926b9cb9e.so => not found librustc-9fc202f17e46723c.so => not found libsyntax-023bbcd4c216dc4e.so => not found librustc_errors-eafc62bd217f40e1.so => not found libsyntax_pos-38ba9807067299a4.so => not found librustc_target-bfdb8da17c1561e4.so => not found librustc_data_structures-1b58628e03065265.so => not found librustc_cratesio_shim-221747bb149fd331.so => not found libserialize-0da15a818407c7d6.so => not found libstd-3ae84a80b42f39c4.so => not found libpthread.so.0 => /lib/libpthread.so.0 (0x00c78000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x005c1000) libc.so.6 => /lib/libc.so.6 (0x005dc000) /lib/ld-linux.so.2 (0x00a73000) [mockbuild@sl7 SPECS]$ nm /builddir/build/BUILD/rustc-1.27.0-src/build/i686-unknown-linux-gnu/stage1/lib/rustlib/i686-unknown-linux-gnu/codegen-backends/librustc_trans-llvm.so|grep LLVM U LLVMAddCase U LLVMAddClause U LLVMAddGlobal U LLVMAddIncoming U LLVMAddNamedMetadataOperand U LLVMAppendBasicBlockInContext U LLVMBuildAdd U LLVMBuildAlloca U LLVMBuildAnd U LLVMBuildAShr U LLVMBuildAtomicRMW U LLVMBuildBitCast U LLVMBuildBr U LLVMBuildCondBr U LLVMBuildExactSDiv U LLVMBuildExactUDiv U LLVMBuildExtractElement U LLVMBuildExtractValue U LLVMBuildFAdd U LLVMBuildFCmp U LLVMBuildFDiv U LLVMBuildFMul U LLVMBuildFNeg U LLVMBuildFPExt U LLVMBuildFPToSI U LLVMBuildFPToUI U LLVMBuildFPTrunc U LLVMBuildFRem U LLVMBuildFSub U LLVMBuildGEP U LLVMBuildICmp U LLVMBuildInBoundsGEP U LLVMBuildInsertElement U LLVMBuildInsertValue U LLVMBuildIntToPtr U LLVMBuildLandingPad U LLVMBuildLoad U LLVMBuildLShr U LLVMBuildMul U LLVMBuildNeg U LLVMBuildNot U LLVMBuildOr U LLVMBuildPhi U LLVMBuildPointerCast U LLVMBuildPtrToInt U LLVMBuildResume U LLVMBuildRet U LLVMBuildRetVoid U LLVMBuildSDiv U LLVMBuildSelect U LLVMBuildSExt U LLVMBuildShl U LLVMBuildShuffleVector U LLVMBuildSIToFP U LLVMBuildSRem U LLVMBuildStore U LLVMBuildStructGEP U LLVMBuildSub U LLVMBuildSwitch U LLVMBuildTrunc U LLVMBuildUDiv U LLVMBuildUIToFP U LLVMBuildUnreachable U LLVMBuildURem U LLVMBuildXor U LLVMBuildZExt U LLVMCloneModule U LLVMConstArray U LLVMConstBitCast U LLVMConstExtractValue U LLVMConstInBoundsGEP U LLVMConstInt U LLVMConstIntGetZExtValue U LLVMConstIntOfArbitraryPrecision U LLVMConstIntToPtr U LLVMConstNull U LLVMConstPointerCast U LLVMConstPtrToInt U LLVMConstRealGetDouble U LLVMConstStringInContext U LLVMConstStructInContext U LLVMConstVector U LLVMConstZExt U LLVMContextDispose U LLVMContextSetDiagnosticHandler U LLVMCountParamTypes U LLVMCreateBuilderInContext U LLVMCreateFunctionPassManagerForModule U LLVMCreatePassManager U LLVMDeleteBasicBlock U LLVMDeleteGlobal U LLVMDisposeBuilder U LLVMDisposeModule U LLVMDisposePassManager U LLVMDoubleTypeInContext U LLVMFloatTypeInContext U LLVMFunctionType U LLVMGetAlignment U LLVMGetBasicBlockParent U LLVMGetCurrentDebugLocation U LLVMGetDataLayout U LLVMGetElementType U LLVMGetFirstBasicBlock U LLVMGetFirstGlobal U LLVMGetInitializer U LLVMGetInsertBlock U LLVMGetIntTypeWidth U LLVMGetMDKindIDInContext U LLVMGetModuleContext U LLVMGetNamedGlobal U LLVMGetNextGlobal U LLVMGetParam U LLVMGetParamTypes U LLVMGetSectionContents U LLVMGetSectionSize U LLVMGetUndef U LLVMGetValueName U LLVMGetVectorSize U LLVMInitializePasses U LLVMInt16TypeInContext U LLVMInt1TypeInContext U LLVMInt32TypeInContext U LLVMInt64TypeInContext U LLVMInt8TypeInContext U LLVMIntTypeInContext U LLVMIsAConstantFP U LLVMIsAConstantInt U LLVMIsAGlobalVariable U LLVMIsDeclaration U LLVMIsGlobalConstant U LLVMIsSectionIteratorAtEnd U LLVMMDNodeInContext U LLVMMDStringInContext U LLVMModuleCreateWithNameInContext U LLVMMoveToNextSection U LLVMPassManagerBuilderCreate U LLVMPassManagerBuilderDispose U LLVMPassManagerBuilderPopulateFunctionPassManager U LLVMPassManagerBuilderPopulateLTOPassManager U LLVMPassManagerBuilderPopulateModulePassManager U LLVMPassManagerBuilderSetDisableUnrollLoops U LLVMPassManagerBuilderSetSizeLevel U LLVMPassManagerBuilderUseInlinerWithThreshold U LLVMPointerType U LLVMPositionBuilderAtEnd U LLVMReplaceAllUsesWith U LLVMRunPassManager U LLVMRustAddAlignmentAttr U LLVMRustAddAlignmentCallSiteAttr U LLVMRustAddAlwaysInlinePass U LLVMRustAddAnalysisPasses U LLVMRustAddBuilderLibraryInfo U LLVMRustAddDereferenceableAttr U LLVMRustAddDereferenceableCallSiteAttr U LLVMRustAddDereferenceableOrNullAttr U LLVMRustAddDereferenceableOrNullCallSiteAttr U LLVMRustAddHandler U LLVMRustAddLibraryInfo U LLVMRustAddModuleFlag U LLVMRustAddPass U LLVMRustAppendModuleInlineAsm U LLVMRustArchiveMemberFree U LLVMRustArchiveMemberNew U LLVMRustArrayType U LLVMRustBuildAtomicCmpXchg U LLVMRustBuildAtomicFence U LLVMRustBuildAtomicLoad U LLVMRustBuildAtomicStore U LLVMRustBuildCall U LLVMRustBuildCatchPad U LLVMRustBuildCatchRet U LLVMRustBuildCatchSwitch U LLVMRustBuildCleanupPad U LLVMRustBuildCleanupRet U LLVMRustBuildIntCast U LLVMRustBuildInvoke U LLVMRustBuildMaxNum U LLVMRustBuildMinNum U LLVMRustBuildVectorReduceAdd U LLVMRustBuildVectorReduceAnd U LLVMRustBuildVectorReduceFAdd U LLVMRustBuildVectorReduceFMax U LLVMRustBuildVectorReduceFMin U LLVMRustBuildVectorReduceFMul U LLVMRustBuildVectorReduceMax U LLVMRustBuildVectorReduceMin U LLVMRustBuildVectorReduceMul U LLVMRustBuildVectorReduceOr U LLVMRustBuildVectorReduceXor U LLVMRustConfigurePassManagerBuilder U LLVMRustConstInt128Get U LLVMRustContextCreate U LLVMRustCreateMemoryBufferWithContentsOfFile U LLVMRustCreateTargetMachine U LLVMRustCreateThinLTOData U LLVMRustDebugMetadataVersion U LLVMRustDIBuilderCreate U LLVMRustDIBuilderCreateArrayType U LLVMRustDIBuilderCreateBasicType U LLVMRustDIBuilderCreateCompileUnit U LLVMRustDIBuilderCreateDebugLocation U LLVMRustDIBuilderCreateEnumerationType U LLVMRustDIBuilderCreateEnumerator U LLVMRustDIBuilderCreateFile U LLVMRustDIBuilderCreateFunction U LLVMRustDIBuilderCreateLexicalBlock U LLVMRustDIBuilderCreateLexicalBlockFile U LLVMRustDIBuilderCreateMemberType U LLVMRustDIBuilderCreateNameSpace U LLVMRustDIBuilderCreateOpDeref U LLVMRustDIBuilderCreateOpPlusUconst U LLVMRustDIBuilderCreatePointerType U LLVMRustDIBuilderCreateStaticVariable U LLVMRustDIBuilderCreateStructType U LLVMRustDIBuilderCreateSubroutineType U LLVMRustDIBuilderCreateTemplateTypeParameter U LLVMRustDIBuilderCreateUnionType U LLVMRustDIBuilderCreateVariable U LLVMRustDIBuilderDispose U LLVMRustDIBuilderFinalize U LLVMRustDIBuilderGetOrCreateArray U LLVMRustDIBuilderGetOrCreateSubrange U LLVMRustDIBuilderInsertDeclareAtEnd U LLVMRustDICompositeTypeSetTypeArray U LLVMRustDisposeTargetMachine U LLVMRustFindAndCreatePass U LLVMRustFreeThinLTOData U LLVMRustGetLastError U LLVMRustGetLinkage U LLVMRustGetNamedValue U LLVMRustGetOrInsertFunction U LLVMRustGetOrInsertGlobal U LLVMRustGetSectionName U LLVMRustGetTypeKind U LLVMRustGetVisibility U LLVMRustHasFeature U LLVMRustInlineAsm U LLVMRustLinkerAdd U LLVMRustLinkerFree U LLVMRustLinkerNew U LLVMRustMarkAllFunctionsNounwind U LLVMRustMetadataAsValue U LLVMRustMetadataTypeInContext U LLVMRustModuleBufferCreate U LLVMRustModuleBufferFree U LLVMRustModuleBufferLen U LLVMRustModuleBufferPtr U LLVMRustModuleCost U LLVMRustParseBitcodeForThinLTO U LLVMRustPassKind U LLVMRustPassManagerBuilderPopulateThinLTOPassManager U LLVMRustPGOAvailable U LLVMRustPositionBuilderAtStart U LLVMRustPrepareThinLTOImport U LLVMRustPrepareThinLTOInternalize U LLVMRustPrepareThinLTORename U LLVMRustPrepareThinLTOResolveWeak U LLVMRustPrintModule U LLVMRustPrintPasses U LLVMRustPrintPassTimings U LLVMRustPrintTargetCPUs U LLVMRustPrintTargetFeatures U LLVMRustRunFunctionPassManager U LLVMRustRunRestrictionPass U LLVMRustSetDataLayoutFromTargetMachine U LLVMRustSetHasUnsafeAlgebra U LLVMRustSetInlineAsmDiagnosticHandler U LLVMRustSetLinkage U LLVMRustSetLLVMOptions U LLVMRustSetModulePIELevel U LLVMRustSetNormalizedTarget U LLVMRustSetVisibility U LLVMRustThinLTOAvailable U LLVMRustThinLTOBufferCreate U LLVMRustThinLTOBufferFree U LLVMRustThinLTOBufferLen U LLVMRustThinLTOBufferPtr U LLVMRustThinLTOGetDICompileUnit U LLVMRustThinLTOPatchDICompileUnit U LLVMRustThinLTORemoveAvailableExternally U LLVMRustVersionMajor U LLVMRustVersionMinor U LLVMRustWriteArchive U LLVMRustWriteDiagnosticInfoToString U LLVMRustWriteOutputFile U LLVMRustWriteSMDiagnosticToString U LLVMRustWriteTypeToString U LLVMRustWriteValueToString U LLVMSetAlignment U LLVMSetCleanup U LLVMSetCurrentDebugLocation U LLVMSetDataLayout U LLVMSetDLLStorageClass U LLVMSetGlobalConstant U LLVMSetInitializer U LLVMSetInstDebugLocation U LLVMSetMetadata U LLVMSetModuleInlineAsm U LLVMSetPersonalityFn U LLVMSetSection U LLVMSetTailCall U LLVMSetUnnamedAddr U LLVMSetValueName U LLVMSetVolatile U LLVMStartMultithreaded U LLVMStructCreateNamed U LLVMStructSetBody U LLVMStructTypeInContext U LLVMTypeOf U LLVMVectorType U LLVMVoidTypeInContext U LLVMWriteBitcodeToFile U LLVMX86MMXTypeInContext U _ZN10rustc_llvm49_$LT$impl$u20$rustc_llvm..ffi..LLVMRustResult$GT$11into_result17h2f29cc40e88747f2E ############## Pat On 07/03/2018 10:07 AM, Orion Poplawski wrote: > Red Hat announced a Firefox security update: > > RHSA-2018:2113 Critical: firefox security update - 60.1.0 > > but I haven't seen it show up in SL (or CentOS for that matter). Any ETA on > this? Thanks. > -- Pat Riehecky Fermi National Accelerator Laboratory www.fnal.gov www.scientificlinux.org