Hi, A couple other thoughts…
What platforms do you see this being useful on ? I know that older platforms, but newer than 10.4, also have issues with SSL/TLS support. Presumably this would also be useful on these ? 10.6 ? 10.7 ? Related to the above what is the rationale for forcing the use of gcc 4.8 ? Is it this is the only compiler that works on OSX 10.4, or is it a constraint from the tenforfox code itself ? Could you not, on slightly newer platforms use a newer gcc build ? I presume that up to date firefox releases must build fine with newer gcc versions …. gcc6 works on 10.6, for instance. This I guess might help to mitigate a bit that platforms that would require the ’strip7’ patch… ( Not important, but what does the 7 mean in strip7 ? ) Chris > On 11 Oct 2018, at 6:29 pm, Christopher Jones <jon...@hep.phy.cam.ac.uk> > wrote: > > Hi, > >> Apparently, gcc48 can produce some zero-length N_SECTs that error out in the >> default strip command but don't need to. Cameron made them warnings instead >> (see below). We are reaching the limits of my knowledge about this issue >> right about now … > > OK. Looking at that patch, because all it does is make what was an error into > a warning, I see no (technical) reason why this could not just be applied > (conditionally, only on those old systems that need tenfoxfox) to the main > cctools build, so patch the strip command built by that. > >> >> I made strip7 a separate port from cctools so as to stay out of Jeremy's >> way. It could easily be a subport of cctools, but I have a feeling Jeremy >> may not like that much ;> > > You will not know without asking, and anyway cctools is open maintainer as > well…. > > I think you should consider preparing a PR that does the above, and then let > the discussion start on the PR itself. If/When that gets approved, adding the > tenfourfox port should be straight forward.. > > cheers Chris > >> >> Ken >> >> >> >> == >> >> --- misc/strip.c.orig 2018-09-16 17:48:10.000000000 -0700 >> +++ misc/strip.c 2018-09-16 17:52:04.000000000 -0700 >> @@ -2951,11 +2951,15 @@ >> n_type = symbols[i].n_type; >> n_sect = symbols[i].n_sect; >> if((n_type & N_TYPE) == N_SECT){ >> - if(n_sect == 0 || n_sect > nsects){ >> + if(n_sect > nsects){ >> error_arch(arch, member, "bad n_sect for symbol " >> "table entry %d in: ", i); >> return(FALSE); >> } >> + if (n_sect == 0) { >> + warning_arch(arch, member, "ignoring n_sect == 0 for " >> + "symbol table entry %d in: ", i); >> + } >> s_flags = sections[n_sect - 1]->flags; >> } >> n_desc = symbols[i].n_desc; >> @@ -2967,11 +2971,15 @@ >> n_type = symbols64[i].n_type; >> n_sect = symbols64[i].n_sect; >> if((n_type & N_TYPE) == N_SECT){ >> - if(n_sect == 0 || n_sect > nsects){ >> + if(n_sect > nsects){ >> error_arch(arch, member, "bad n_sect for symbol " >> "table entry %d in: ", i); >> return(FALSE); >> } >> + if (n_sect == 0) { >> + warning_arch(arch, member, "ignoring n_sect == 0 for " >> + "symbol table entry %d in: ", i); >> + } >> s_flags = sections64[n_sect - 1]->flags; >> } >> n_desc = symbols64[i].n_desc; >> >> ======== >
smime.p7s
Description: S/MIME cryptographic signature